2012-10-08 116 views
4

假設我宣佈一個新的C++結構類型:結構實例與 「結構」 關鍵字

my_struct foo; 

struct my_struct foo; 

struct my_struct { 
    int a; 
    int b; 
}; 

我可以通過創建這個結構類型的新實例

如果兩者都有效,有什麼區別嗎?

回答

14

是的,你可以使用任何一種方法。不同的是,這種形式:

my_struct foo; 

是不是在C法律,所以你必須使用這種形式:

struct my_struct foo; 

這是在C++支持向後兼容C.

+0

解釋它..謝謝! –

+1

不僅爲了向後兼容,兩者略有不同,並且有些情況下需要'struct'(或'class')。可以說,儘管如此,還是有很少的例子。 –

+1

@DavidRodríguez-dribeas:你能詳細說明一下嗎? –

2

兩個工作。第二個工作的主要原因是與C兼容:在C中,第一個不起作用。因此,struct通常是C中的typedef,並且structs和typedefs有兩種不同的名稱。

+0

好的,謝謝! –