C 中struct和class的差別

2021-05-21 11:49:50 字數 508 閱讀 8655

在c++中,struct和class除了預設訪問控制級別不一樣,其它別無二致,具體怎麼用,純屬於個人習慣。

另:在stroustrup(c++發明者)的原作中:

他自己說的原句是:按照定義,乙個struct就是乙個類,而只是完全公開的類:

所以:struct s{...

等價於class s{ public: ...

也就是說,struct中也可以定義方法,運算子等等,跟類等同對待,唯一的區別就是struct中預設是public的,而class預設是private的。

原文: 「採用哪種形式要看情況和你自己的偏好。我通常將struct用於所有成員都是公用的那些類。我認為這樣的類「並不是完整的型別,不過是個資料結構」。對與這種結構,建構函式和訪問函式也是相當有用的,但只是作為一種簡寫形式,而不是作為型別性質的捍衛者「

我的理解是c++中的struct純粹是為了相容c的struct來的,但是本質已經夠完全不同。c中的struct只是資料的集合體,而c++中的struct已經引入了物件導向的思想。

c 中struct和class的區別

有這麼幾點不同 1.struct 是值型別,class是物件型別 2.struct 不能被繼承,class可以被繼承 3.struct 預設的訪問許可權是public,而class預設的訪問許可權是private.4.struct不能由程式設計師申明建構函式,即使是預設 不帶引數 的建構函式,同樣也...

C 中 struct 和 class 的區別

從語法上,class和struct做型別定義時只有兩點區別 一 預設繼承許可權。如果不明確指定,來自class的繼承按照private繼承處理,來自struct的繼承按照public繼承處理 二 成員的預設訪問許可權。class的成員預設是private許可權,struct預設是public許可權。...

c 中struct和class的區別

struct內資料預設是public型別的,class內資料預設是private型別的。繼續用struct是為了向下相容啊,習慣問題,以後發展會只用class的 你可以 template 但是 template 並不總是可以用的。class中有個預設的this指標,struct沒有 不同點 建構函式...