C 類與物件探秘 結構體實現類

2021-10-10 07:06:18 字數 725 閱讀 9781

在c++中,class和struct幾乎沒有區別,非要說有區別,就是預設訪問許可權的區別,class預設私有,struct預設公有,這回主要通過c語言的結構體來了解一下c++類和物件的一些原理。

結構體中,可以放變數,還有函式宣告,這裡設定不將函式宣告寫在結構體中。

//演示類1

struct animal

;void print(animal* this)

//演示類2

class animal2

};

上面這段**,我們發現類和結構體的print函式除了引數不同,內部的**幾乎一樣,這裡我們可以理解為,類內成員函式會有乙個隱藏的this指標,這個指標指向自身,在呼叫的時候會將其傳入函式,類似如下**。

animal anim;

anim.name = "pig";

print(&anim);

animal2 anim2;

anim2.name = "sheep";

anim2.print();

這樣一來就更加明確了,上下兩段**的實際操作是一樣,只不過寫法不同。

//演示類2

class animal2

static void run()

;void print(animal* this)

void run()

類 物件 結構體

類 是對某一類物件的抽象 物件 是某一種類的例項 類是抽象的,不占用記憶體,而物件是具體的,占用儲存空間。類的定義一般分為宣告部分和實現部分,當類的成員函式的函式體在類的外部定義時,必須由作用域運算子 來通知編譯系統該函式所屬的類。類中的資料成員的型別可以是任意的,但不允許對所定義的資料成員進行初始...

C 類和物件,結構體

趁著中秋放假要多補補知識了,感覺自己對c 了解的不夠紮實,為了更好的工作,只好再來看看。c和c 規定可以用乙個結構體,裡面即可有陣列,也可以有其他變數。c中成員只能是資料,c 除了資料,還可以是函式。但是,c 提供了類這個東西,所以不需要包含函式的結構體。1,結構體 include using na...

類與結構體

1.c與c 中結構體的不同 1 c中的結構體不能申明函式,只能申明變數 c 中的結構體和類差不多,能申明資料成員,也能申明函式成員 2 c中的結構體不能進行封裝,而c 中由於是 類 可以進行封裝。2.c 中類與結構體的區別 首先說明c 中類與結構體在一定意義上是等價的 區別 1 在預設狀態下,結構體...