【发布时间】:2017-07-30 15:58:38
【问题描述】:
我开始的一个 c++ 项目遇到了一些麻烦。我正在尝试实现基本链表,并且我的尝试在列表类中包含代理类以表示单个节点。其中一个列表构造函数可以获得单个参数并用它初始化列表的第一个节点,但我不能将该参数传递给代理类的构造函数。有什么建议吗?
这是一些 c++ 代码
template <class TYPE>
class list{
private:
//Proxy class for node representation
class node{
private:
node* next;
TYPE data;
public:
explicit node() : next(nullptr) {}
node (const TYPE& init) : data(init) {}
inline node*& get_next(){
return next;
}
inline TYPE& get_data(){
return data;
}
};
node* head;
unsigned int size;
public:
explicit list() : head(nullptr), size(0) {}
list(const TYPE& init) : list::node(init) {}
【问题讨论】:
-
似乎您决定使用
list::node语法,因为您将基类初始化与成员初始化混淆了。在这种情况下,head只是list的成员,您应该使用成员初始化语法。类是否在list中声明并不重要。
标签: c++ proxy-pattern