類的成員函式的儲存方式

2021-07-25 20:45:32 字數 532 閱讀 6344

#includeusing namespace std;

class box

void display()

private:

int length;

int width;

int height;

};int main()

{ box box1;

cout<

在這裡需要說明:

1:無論在類體內定義函式,還是在類體外定義函式,函式的**段是相同的,都不占用物件的儲存空間。

2:不要誤認為函式用inline宣告了,或者在類體內定義就是例外,inline的作用是將函式在呼叫點展開,如果不用內聯,流程會轉去函式**段的入口位址,所以內聯只影響超程式的執行效率,和物件的儲存空間沒有關係。

3:我們常說「某某物件的成員函式」,這是在邏輯的角度而言的,而成員函式的儲存方式是在物理角度而言的,不矛盾。例如說某人有錢,錢並不一定在他身上放著,有可能在銀行,但是在哪都是他的錢。同樣,雖然成員函式並沒有放在物件的儲存空間中,但從邏輯的角度,成員函式是和資料一起封裝在乙個物件中的。

C 類成員函式的儲存方式 C 類成員

對於類的大小,我們發現類內成員函式並不存在於類的儲存空間。這引發了我們的思考,類中的函式成員儲存在什麼地方?資料成員每個物件會有乙份,函式成員會不會也是這樣呢?include using namespace std class time private int hour int minute int...

c 類中資料成員和成員函式的儲存方式

我們都知道在例項化類得到物件時,系統會為類內的資料成員和成員函式分配儲存空間 但是如果我們用同乙個類例項化多個物件呢?那麼是不是系統要為每乙個物件中的成員函式分配儲存空間?實際上不是這樣的!當例項化類得到物件時系統只為物件的資料成員分配記憶體空間,而將類的成員函式放在另乙個公共的區域。所以,無論例項...

C 成員函式的儲存方式

用類去定義物件時,系統會為每乙個物件分配儲存空間。如果乙個類包括了資料和函式,要分別為資料和函式的 分配儲存空間。按理說,如果用同乙個類定義了10個物件,那麼就需要分別為10個物件的資料和函式 分配儲存單元,如圖8.4所示。圖8.4 能否只用一段空間來存放這個共同的函式 段,在呼叫各物件的函式時,都...