你能告訴我,爲什麼我得到的編譯錯誤模板拷貝構造函數
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