語法上,class和struct做型別定義時只有兩點區別:
預設繼承許可權,如果不指定,來自class的繼承預設是按照private繼承處理,來自struct的繼承預設是按照public繼承處理;
成員的預設訪問許可權:class預設是private,struct預設的是public;
「class」這個關鍵字還用於定義模板參 數,就像「typename」。但關鍵字「struct」不用於定義模板引數。
在c++中,對struct做了擴充套件:
srtruct能包含成員函式;
struct有自己的建構函式;
struct有自己的析構函式;
struct也是支援繼承的;
struct支援private、protected和public關鍵,支援多型;
struct在c++中用:
struct test
執行結果:
class用:
class a
執行結果:
對比這兩者的執行結果可以發現,好像c++中用struct和class的結果都是一樣的。但是他們最本質的區別就在於訪問控制上。struct更像是一種資料結構;而class是c++中oop思想對於實體的封裝,也就是更願意用class來實現成員的封裝。在c中,只有struct,通常也是用struct來構造一種資料結構;那c++是在c的基礎上發展而來的,他要相容c的一些用法,又要實現自己的,所以在c的基礎上他對於struct進行了如上的擴充套件。
c class和struct的區別
眾所周知c 語言為物件導向的程式設計,我們在實際程式設計時,所用的關鍵字為class 而struct為結構體關鍵字,主要是作為一種資料結構採用,並不把它當做物件。他們之間的異同主要在與那裡呢?1class a 我們可以使用 struct a a 來進行初始化,而一般的類當然也可以做到了,但是需要加上...
C class和struct的區別
這裡有兩種情況下的區別。1 c的struct與c 的class的區別。2 c 中的struct和class的區別。在第一種情況下,struct與class有著非常明顯的區別。c是一種過程化的語言,struct只是作為一種複雜資料型別定義,struct中只能定義成員變數,不能定義成員函式。例如下面的c...
C class和struct的區別
class 和 struct的乙個區別就是對預設的繼承訪問許可權不同 class的預設訪問屬性是私有的 private 而struct的預設訪問屬性是公共的 public 用class定義類 class a 這與下面 等價 class a 而用struct定義類 struct a 這樣下面 等價 s...