2012-02-22 55 views
1

我是C++的新手,所以這裏很少有人會提出這樣的問題。使用在類之外聲明的數據類型

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;} 
    }; 

這是DLIST結構me.suppose我想使用的數據類型DNode這個類之外的其他一些CPP文件我type.how可以用它來DNode的申報數據。

回答

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

你可以聲明該類型的變量有:

DList::DNode myNode; 

如果你在其他一些CPP文件,確保您#include "DList.h"或什麼是(希望)頭文件的名稱。如果它不是頭文件,則應將其移動到一個,並可能考慮將實現細節移至.cpp文件。

+0

感謝所有這麼反應.. :) – 2012-02-22 19:24:53