c 類記憶體結構

2021-07-07 09:40:09 字數 461 閱讀 6956

當乙個c++類被例項化的時候,從記憶體當中會產生一塊關於該類的記憶體區域。那麼,乙個類對應的記憶體是怎麼樣的呢?類裡面有成員變數,有函式,還有虛函式等,具體自己去研究,我這裡只介紹一種方法,可以檢視乙個類的記憶體分布,好記性不如爛筆頭,幫自己記憶了。

用vs系列工具的弟兄,我們以vs2008為例,用所有程式裡找到vs2008命令工具,然後開啟。然後就可以使用cl工具進行檢視了。

寫乙個檔案如test.cpp,然後在這個檔案裡寫入乙個類myclass,再寫乙個結構體mystruct.

然後開啟上面提到的vs的命令工具,按照以下格式輸入就行了:

比如我們要檢視myclass的記憶體分布:cl test.cpp  /d1reportsingleclasslayoutmyclass

檢視mystruct的記憶體分布:cl test.cpp  /d1reportsingleclasslayoutmystruct

that's all.

C 類記憶體結構分析

本文的目標是闡述清楚 c 的類相關的記憶體結構問題。這個問題對於已經很了解的人來說,太簡單了,這還有必要拿出來與人分享嗎?但對於那些不了解的人,始終有一層窗戶紙不能被捅破,似乎總是不能非常到位的理解本質。本文的闡述過程會分為幾個階段,類與物件的關係,物件到底是什麼,類的函式時如何被處理的,多型是如何...

C 類的記憶體結構

摘自jerry19880126 沒有複寫的繼承 複寫的繼承 記憶體分布從父類到子類,依次如下 base中有乙個虛表指標 derivedclass1繼承了base,記憶體排布是先父類後子類。derivedclass2的情況是類似於derivedclass1的。derivedderivedclass,由...

從類的記憶體結構看C 繼承

先看下面這個簡單的例子,我們建立乙個基類 base class 通過簡單的繼承 inherit 產生兩個派生類 derived class 然後通過乙個基類的指標去呼叫這兩個派生類,並且呼叫類中的函式。class base void show2 class derived1 public base ...