Issue with Constructor of Struct nested in Class Template
我需要将我编写的ints的链接列表类转换为类模板。我对嵌套在列表类(称为node)中的结构的构造函数和析构函数有问题。
布局:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | template <typename T> class List { public: //Stuff that's not important to this question private: struct Node { Node(T value); // constructor ~Node(); // destructor Node *next; // pointer to the next Node T data; // the actual data in the node static int nodes_alive; // count of nodes still allocated }; }; |
实施:
1 2 3 4 5 6 7 8 9 10 11 12 | template <typename T> typename List<T>::Node::Node(T value) { data = value; next = 0; } template <typename T> typename List<T>::Node::~Node() { --nodes_alive; } |
错误:
声明结尾应为";"
类型名列表::节点::节点(t值)
"::"后应为标识符或模板ID
类型名列表::节点::~节点()。
在"~"后面应输入类名以命名析构函数
类型名列表::节点::~节点()。
不太确定这里发生了什么。我的实现在一个单独的文件中,包含在头文件的底部。任何帮助都将不胜感激。
很简单:去掉
1 2 3 4 5 6 7 8 9 10 11 12 | template <typename T> List<T>::Node::Node(T value) { data = value; next = 0; } template <typename T> List<T>::Node::~Node() { --nodes_alive; } |