struct
默認爲公開,class
默認爲私有。每次我使用struct而不是class時,我會殺死一隻小貓嗎?
讓我們以Ogre3D爲例;如果我用struct更改所有class
事件,它會編譯(我猜),引擎和以前一樣工作。
如果我是正確的,編譯後的代碼是完全和以前一樣,因爲它,它不是在運行時檢查是唯一,它檢查是否有私人/受保護的方法被稱爲編譯器。
如果我還是對的,class
只是一個關鍵字,只是讓其可愛的眼睛和乞討「請封裝你的數據:你可以節省一隻小貓」,而私人/保護的範圍仍然上漲給用戶。
我知道我聽起來有點跛或反叛毫無來由(類似「C是KISS的傢伙,不要去」
回到問題:什麼是標準說一下struct
和class
,而這之間的差別不大生成機器碼?爲什麼添加關鍵字和嘗試,而這是完全沒有,那麼執行呢?是不是由Java的影響?
實際上恰恰相反。每當你使用「結構」就足夠的'class'關鍵字時,你就會殺死一隻小貓。不,自從C++首次發佈以來,並沒有受到Java的影響。 – 2011-01-24 17:28:57
C++不是一種嚴格的OO語言,它是一種多範式語言,不僅支持面向對象的操作,因此它不試圖對開發者實施面向對象的概念。如果他們願意的話,開發者可以使用OO風格。請參閱C++標記的信息條目http://stackoverflow.com/tags/c%2b%2b/info – Glen 2011-01-24 17:28:59
有更多的答案在這個問題在http://stackoverflow.com/questions/4090794/c-when-should -i-use-structs-instead-of-class-and-where-the-the-speed-differe。 – 2011-01-24 17:30:05