所以我正在尋找關於結構與類差異的問題......而我沒有得到一件事 - 我們可以定義一個類型結構嗎?像tiped課...如果是的話,請提供一些樣品。我們可以在類型上定義一個結構嗎?
回答
如果你的意思是,你可以像使用類一樣使用結構嗎?答案是肯定的。在C++中唯一的區別是可見性的默認值。一個班級的成員默認爲私人;結構的成員默認爲公共。如果你創建一個類並且讓所有成員都公開,那麼它和結構幾乎一樣。我知道編譯器會因結構是否可以從類繼承而異,反之亦然。
坦率地說,我認爲struct存在於C++中,主要是爲了向上兼容C,或者換句話說,類只存在,因爲這是同一個想法的新名稱。
回覆:「我知道編譯器會因結構是否可以繼承上課,反之亦然「 - 他們當然不應該。除了默認的可訪問性,類和結構是相同的,可以互換使用。 – 2011-05-09 14:11:54
但大多數程序員仍然使用'struct'作爲POD,'class'作爲OO /數據隱藏的東西。與編譯器的POV差別不大,但對代碼的讀者來說是一個強烈的暗示。 – 2011-05-09 14:14:28
從技術上講,struct不存在;關鍵字'struct'和關鍵字'class'都定義了一個類的類型。實際上,程序員根據本地編碼約定使用一個或另一個關鍵字。 – 2011-05-09 14:26:48
- 1. 我們可以在excel-vba中定義一個可以有多個預定義值的數據類型嗎?
- 2. 我們可以有一個泛型的類類型嗎?
- 3. 我可以在自定義類型中放置一個CollaborativeString嗎?
- 4. 我可以在F#中的類中定義結構嗎?
- 5. 我可以定義一個鍵是結構的地圖嗎?
- 6. 我可以在Scala 2.8中命名一個元組(定義一個結構?)嗎?
- 7. 我們可以在opencl中使用結構體的結構嗎?
- 8. 我們可以把這樣的結構變成類型化的類/函數嗎?
- 9. 我可以創建自定義plist結構定義嗎?
- 10. 在結構本身之前可以定義一個結構成員(函數)嗎?
- 11. 我們可以調用一個類的構造函數嗎?
- 12. C++:我們可以收集類型嗎?
- 13. 我們可以在C++的主函數之後定義結構嗎?
- 14. 我們可以創建一個泛型類的數組嗎?
- 15. 我們可以得到一個lambda參數的類型嗎?
- 16. 我們必須malloc一個結構嗎?
- 17. 我們可以在構造函數中定義靜態類成員嗎?
- 18. 我們可以開發一個自定義的UITababar嗎?
- 19. 我們可以定義一個私人IBOutlet嗎?
- 20. 我們可以定義一個通用的xhtmlatex6嗎?
- 21. 去和另一個結構中的自定義結構類型
- 22. 我可以爲一個類的方法定義一個泛型typescript接口嗎?
- 23. 我可以用Timespan類型在TimeSpan上做一個Foreach嗎?
- 24. 我們可以在GDB會話中定義新的數據類型嗎
- 25. 我可以在Scala類中定義一個無名方法嗎?
- 26. 我們可以在struts-2中設置兩個結果類型嗎?
- 27. 我們可以通過URL傳遞整個結構嗎?
- 28. 同一類中定義的兩個結構體可以互相訪問嗎?
- 29. 我們可以指定一個unsigned int類型varaible,0xFULL文字
- 30. 我們可以在類中定義的redux Action Creators上使用bindActionCreators()嗎?
就我所知,類和結構*都是*類型...你能澄清* typed class *的含義嗎?你會不會提到模板? – 2011-05-09 14:02:28
「定義結構類型」是什麼意思?如果你可以舉一個例子,「傾斜課堂」可能更容易回答。 PS。我沒有投票。 – juanchopanza 2011-05-09 14:04:16
至於「struc vs class difference」,可能最簡潔的定義來自Stroustrup先生自己:「結構 - 類成員默認爲公共成員」。 – Damon 2011-05-09 14:09:07