你能告诉我,为什么我得到的编译错误模板拷贝构造函数
template<class T> class 'Node' used without template parameters
用下面的代码
template<class T>
class Node
{
private:
T _value;
vector<Node*> children;
public:
Node(T value);
Node<T>(const Node<T>& node);
void AddChild(Node<T>* node);
T getValue();
vector<Node<T>*> returnChildren();
~Node();
};
template <class T>
Node::Node<T>(T value):_value(value)
{
}
如果我这样做'模板 节点 ::节点(T值):_值(值) { }' 它不工作,要么 –
正如我所说的,第二个'节点'在该行中是构造函数的名称,而不是类的名称。你声明构造函数的方式不是作为模板。 (该类是一个模板,但构造函数是模板类的非模板函数)。所以构造函数名称不应该有模板参数。 – JSF