2017-07-30 4 views
0

私は始めたC++プロジェクトにいくつかの問題があります。私は基本的なリンクリストを実装しようとしていると私の試みは、単一ノードを表すためのリストクラスのプロキシクラスを含んでいます。リストコンストラクタの1つは、単一のパラメータを取得し、リストの最初のノードを初期化することができますが、そのパラメータをプロキシクラスのコンストラクタに渡すことはできません。どのようにそれを行うための任意の提案?ここでプロキシクラスのコンストラクタへのアクセス

は、いくつかの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

は思えます。この場合、 'head'は単に' list'のメンバであり、メンバ初期化構文を使うべきです。クラスが 'list'の中で宣言されているかどうかは関係ありません。 –

答えて

0

ですさて、あなたはnodeのインスタンスにではなく、クラス自体を参照してください。また、headはあなたの例のポインタです。

このような何か試してください:あなたはメンバーの初期化とあなた混乱し、基本クラスの初期化するので、 `リスト:: node`構文を使用することを決めたよう

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

私はそれを手に入れました!ありがとうございました! – Zarrie

関連する問題