C 中物件導向模型初探

2021-08-16 02:48:25 字數 1069 閱讀 4710

這裡主要概述成員函式的本質,這裡只是用c語言的方式來實現c++中類的功能,並不代表c++編譯器的真正做法,但c++編譯器實現原理大致如此。

/*注釋部分為c**的實現方式,也是c++編譯器的實現原理*/

總結:1、c++類物件中的成員變數和成員函式是分開儲存的,c語言的記憶體四區模型仍然有效;

2、c++中類的普通成員函式都隱式包含乙個指向當前物件的this指標;

3、靜態成員函式、成員變數屬於類

靜態成員函式與普通成員函式的區別在於

靜態成員函式不包含指向具體物件的指標

普通成員函式包含乙個指向具體物件的指標。

這一點可以在普通成員函式的函式指標和靜態成員函式的函式指標型別宣告中體現:

#include class test

static void print (test & test)

void output ()

private:

int a;

int b;

};int main()

上述**中,普通成員函式函式指標型別*前要加"類名::",而靜態成員函式不需要,這是由於普通成員函式隱含傳遞this指標作為其第乙個引數,而靜態成員函式不傳遞this指標,所以靜態成員函式的指標型別和和類外的單獨函式指標沒有區別。

C 物件導向模型初探

前言 c 物件模型可以概括為以下2部分 1.語言中直接支援物件導向程式設計的部分,主要涉及如建構函式 析構函式 虛函式 繼承 單繼承 多繼承 虛繼承 多型等等。2.對於各種支援的底層實現機制。在c語言中,資料 和 處理資料的操作 函式 是分開來宣告的,也就是說,語言本身並沒有支援 資料和函式 之間的...

14物件導向模型初探

c 物件模型可以概括為以下2部分 1.語言中直接支援物件導向程式設計的部分,主要涉及如建構函式 析構函式 虛函式 繼承 單繼承 多繼承 虛繼承 多型等等。2.對於各種支援的底層實現機制。在c語言中,資料 和 處理資料的操作 函式 是分開來宣告的,也就是說,語言本身並沒有支援 資料和函式 之間的關聯性...

C 物件模型初探

在c 中有兩種class data members static和non static,以及三種class member functions static non static 和virtual。簡單物件模型 乙個object由一系列的slots組成,每乙個slot指向乙個member,slots按...