2010-03-30 124 views
38

有人能給我一個關於如何在C++類中定義一個新類型結構的例子。謝謝。在C++中用類定義一個struct

+10

還要注意,同樣的技術可以用來定義類內部的類,結構內部的結構和結構內部的類。類和結構只對其成員的默認可見性(分別爲private和public)有所不同。 – 2010-03-30 09:00:37

+4

...及其默認繼承類型(分別爲private和public)。 – 2013-06-07 11:03:30

回答

62

事情是這樣的:

class Class { 
    // visibility will default to private unless you specify it 
    struct Struct { 
     //specify members here; 
    }; 
}; 
5

喜歡的東西:

class Tree { 

struct node { 
    int data; 
    node *llink; 
    node *rlink; 
}; 
..... 
..... 
..... 
}; 
+0

我正在嘗試做類似的事情(創建)霍夫曼樹。我懷疑你將如何創建節點的對象,以及如何讓它在主函數中可訪問? – user3206225 2014-02-12 00:42:36

41

聲明類&嵌套的結構可能在一些頭文件

class C { 
    // struct will be private without `public:` keyword 
    struct S { 
     // members will be public without `private:` keyword 
     int sa; 
     void func(); 
    }; 
    void func(S s); 
}; 

,如果你想單獨執行/定義,也許在一些CPP文件

void C::func(S s) { 
    // implementation here 
} 
void C::S::func() { // <= note that you need the `full path` to the function 
    // implementation here 
} 

如果你想內聯執行,其他答案將會很好。

+0

所以我有一個結構裏面有三個變量,我能夠用'private:'關鍵字編譯我的代碼。那麼這個結構的邊界是「私人」的呢?定義結構的類可以訪問這些變量嗎?我是否絕對需要公共函數指針來解析主類中的函數?基本上我所擁有的是由結構體表示的測試用例的向量。 – JoeManiaci 2015-12-08 22:53:47

+0

「全程」剛剛救了我的命! – yano 2017-03-30 21:58:35

相關問題