2011-05-09 69 views
0

所以我正在尋找關於結構與類差異的問題......而我沒有得到一件事 - 我們可以定義一個類型結構嗎?像tiped課...如果是的話,請提供一些樣品。我們可以在類型上定義一個結構嗎?

+1

就我所知,類和結構*都是*類型...你能澄清* typed class *的含義嗎?你會不會提到模板? – 2011-05-09 14:02:28

+1

「定義結構類型」是什麼意思?如果你可以舉一個例子,「傾斜課堂」可能更容易回答。 PS。我沒有投票。 – juanchopanza 2011-05-09 14:04:16

+3

至於「struc vs class difference」,可能最簡潔的定義來自Stroustrup先生自己:「結構 - 類成員默認爲公共成員」。 – Damon 2011-05-09 14:09:07

回答

2

如果你的意思是,你可以像使用類一樣使用結構嗎?答案是肯定的。在C++中唯一的區別是可見性的默認值。一個班級的成員默認爲私人;結構的成員默認爲公共。如果你創建一個類並且讓所有成員都公開,那麼它和結構幾乎一樣。我知道編譯器會因結構是否可以從類繼承而異,反之亦然。

坦率地說,我認爲struct存在於C++中,主要是爲了向上兼容C,或者換句話說,類只存在,因爲這是同一個想法的新名稱。

+0

回覆:「我知道編譯器會因結構是否可以繼承上課,反之亦然「 - 他們當然不應該。除了默認的可訪問性,類和結構是相同的,可以互換使用。 – 2011-05-09 14:11:54

+3

但大多數程序員仍然使用'struct'作爲POD,'class'作爲OO /數據隱藏的東西。與編譯器的POV差別不大,但對代碼的讀者來說是一個強烈的暗示。 – 2011-05-09 14:14:28

+1

從技術上講,struct不存在;關鍵字'struct'和關鍵字'class'都定義了一個類的類型。實際上,程序員根據本地編碼約定使用一個或另一個關鍵字。 – 2011-05-09 14:26:48

相關問題