2011-09-08 68 views
1

在C++中,如果你創建一個結構或類這樣結構和類在C++

struct foo { 

} 

必須使用結構或類限定符在C做創造一個又一個,如果不是這是爲什麼?什麼時候在C++中使用它是合適的?

示例

struct foo a;

由於:-)

+0

結構在C++中表現爲公共類並創建新類型,因此使用struct關鍵字來創建變量純粹是可選的。 –

+1

@rubixibuc - 增加了'C++'標記,因爲這是適當的。 – Mahesh

回答

3

struct不是必需的。在C++中,structclass之間的唯一區別是,在一個struct,成員public默認,而在class,他們在默認情況下是private

3

否,而用C實例不需要struct關鍵字++。順便說一下,結構定義應該以;

1

在C中,您可以通過使用typedef來避免它。在C++中,類型是自動創建的,因此不需要明確說明它。

C語法,使其類似於:

typedef struct { 
.... 
} foo; 

然後你可以使用它說foo x;

2

你可以,但你不必。最好不要,如果你不打算將你的代碼與純C混合,那麼它就是正確的C++風格。原因是C++的設計者認爲C的標籤概念是不必要的複雜。我傾向於同意。