2017-07-30 158 views
0

我有一些麻烦,我开始的一个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) {} 
+0

好像你决定使用'目录:: node'语法,因为与成员初始化你感到困惑的基类的初始化。在这种情况下,'head'只是'list'的成员,你应该使用成员初始化语法。这个类是否在list中声明并不重要。 –

回答

0

那么,你应该参考的node的实例,而不是类本身。另外,请记住,head是您示例中的指针。

尝试这样:

list(const TYPE &init) : head(new node(init)) {} 
+1

我懂了!谢谢! – Zarrie