C class和struct的區別

2021-08-03 20:35:51 字數 777 閱讀 1332

class 和 struct的乙個區別就是對預設的繼承訪問許可權不同

class的預設訪問屬性是私有的(private),而struct的預設訪問屬性是公共的(public)

用class定義類:

class

a;這與下面**等價:

class

a;

而用struct定義類:

struct a

這樣下面**等價:

struct a;

因此我們可以得知:

struct a

;struct b : a

; //這裡的 b 是以public的方式繼承 a 的。

classa;

class

b : a

; //這裡的 b 是以private的方式繼承 a 的,這也就是預設的繼承訪問許可權。

因此,在寫類繼承的時候,我們通常這樣寫:

class

b : public

a

目的是為了指明是public繼承,而不是用預設的private繼承。

預設的繼承方式取決於子類而不是基類,例如:

struct a{};

class

b : a{}; // private 繼承

struct

c : b{}; // public 繼承

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預設是private,struct預設的是public class 這個關...