2017-07-08 6 views
0

私はドキュメントを調べてクラスから与えられたサンプルコードを調べていますが、ここで何が間違っているのか分かりません。私はリンクリスト構造を構築しようとしており、ノードを指すポインタを必要としますが、ポインタを正しく初期化できないようです。ノードはお互いに良い点を指しています。最初の/最後の/現在のポインタを持つ全体的なクラスは、私に問題を与えています。C++別のクラス内の異なるクラスへのポインタ

次のコードは、ノードクラスのポインタを作成しようとするとエラーが発生します。私はC2238の "予期しないトークンを先行する"; 19,20、および21行目とC2143の "行方不明"; ' 19行目、20行目、および21行目(linkedListのprotectedセクション)については、 '*'の前に、C4430の「型指定子がありません」を再度指定してください。

C2238とC4430エラーを残したが、「不足しているためにC2143を変更し、以下のように保護されたセクションを変更
template <class Type> 
class linkedList 
{ 
public: 
    //constructors 
    linkedList(); 

    //functions 
    void insertLast(Type data);    //creates a new node at the end of the list with num as its info 
    void print();       //steps through the list printing info at each node 
    int length();       //returns the number of nodes in the list 
    void divideMid(linkedList sublist);  //divides the list in half, storing a pointer to the second half in the private linkedList pointer named sublist 

    //deconstuctors 
    ~linkedList(); 
protected: 
    node *current;       //temporary pointer 
    node *first;       //pointer to first node in linked list 
    node *last;        //pointer to last node in linked list 
    bool firstCreated;      //keeps track of whether a first node has been assigned 
private: 
}; 

template <class Type> 
struct node 
{ 
    Type info; 
    node<Type> *next; 
}; 

『;』 '<'」の前に

node<Type> *current;       //temporary pointer 
    node<Type> *first;        //pointer to first node in linked list 
    node<Type> *last;        //pointer to last node in linked list 
+0

テンプレート化されていないリンクリストを作成する方法を知っていますか? –

答えて

1

あなたはlinkedListnodeための前方宣言を行う必要があります。

template <class Type> 
struct node; 

作業バージョンhereをしてくださいを参照してください。

関連する問題