C class和struct的區別

2021-09-27 13:32:42 字數 942 閱讀 6704

語法上,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...