2012-02-22 16 views
1

私はC++を初めて使っていますので、ここではごく少数の人にとってverryばかげた質問です。クラス内で宣言されたデータ型を使用しています

class DList { 
    public: 
    struct DNode { 
     int data; 
     DNode* next; 
     DNode* prev; 
     DNode(DNode* ptr1, DNode* ptr2, int val) 
     { 
     next = ptr1; 
     prev = ptr2; 
     data = val; 
     } 
     ~DNode() {} 
     public: 
     DNode* getNext() {return next;} 
     int getNodeVal() {return data;} 
    }; 

これは私がそれを使用することができtype.how DNodeのデータを宣言するためにいくつかの他のcppファイルに、このクラスの外にデータ型DNodeを使用したいme.supposeためDLIST構造です。

答えて

5

これは、名前の資格の問題だ:これはまた、外部クラス内で静的に宣言された変数や関数を参照するために働く

DList::Dnode x;

class DList { 
    public: 
    struct DNode { 
     int data; 
     DNode* next; 
     DNode* prev; 
     DNode(DNode* ptr1, DNode* ptr2, int val) 
     { 
     next = ptr1; 
     prev = ptr2; 
     data = val; 
     } 
     ~DNode() {} 
     public: 
     DNode* getNext() {return next;} 
     int getNodeVal() {return data;} 
    }; 
    static int counter; 
    static int f() {/**/} //do some stateless operation related to the class 
}; 
//... 
DList::counter++; 
int result = DList::f(); 
3

あなたはとその型の変数を宣言することができます。あなたには、いくつかの他のcppファイル内にある場合は、#include "DList.h"または任意のその(うまくいけば)ヘッダファイルの名前があることを確認し、

DList::DNode myNode; 

。ヘッダーファイルでない場合は、ヘッダーファイルに移動し、実装の詳細を.cppファイルに移動することを検討する必要があります。

+0

とても感謝しています。 –

関連する問題