gpt4 book ai didi

C++:尝试在模板化类中声明和定义模板化类。我的代码有什么问题?

转载 作者:行者123 更新时间:2023-11-28 06:29:53 24 4
gpt4 key购买 nike

#ifndef SIMPLE_BST_HPP
#define SIMPLE_BST_HPP

#include <vector>

template <class T>
class SimpleBST {

public:

SimpleBST(std::vector<T>);


template <class T>
class BSTNode
{


};

};


#endif

但是,我在编译时遇到了这个错误:

In file included from SimpleBST.cpp:1:0:
SimpleBST.hpp:14:12: error: declaration of ‘class T’
template <class T>
^
SimpleBST.hpp:6:11: error: shadows template parm ‘class T’
template <class T>
^
In file included from main.cpp:1:0:
SimpleBST.hpp:14:12: error: declaration of ‘class T’
template <class T>
^
SimpleBST.hpp:6:11: error: shadows template parm ‘class T’
template <class T>
^

有谁知道为什么我无法定义 BSTNode?我最终会将节点设为私有(private),但此时,我只是想在 SimpleBST 中声明一个类,该类可用作基本节点来存储我的二叉搜索树的元素。

谢谢!

最佳答案

考虑到您正在创建的类,您为嵌套类使用类模板是没有意义的。

你不想SimpleBST<double>包含 BSTNode<int> .

制作BSTNode SimpleBST<T> 下的简单嵌套类型.

template <class T>
class SimpleBST {

public:

SimpleBST(std::vector<T>);

class BSTNode
{
};

};

关于C++:尝试在模板化类中声明和定义模板化类。我的代码有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27807257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com