c 類的成員函式在定義物件前分配了儲存空間嗎?

2021-08-11 04:39:04 字數 337 閱讀 5393

對於一般的類(非靜態)來說,在定義類但還未建立物件的時候,類的所有成員(包括變數和函式)都占用著

記憶體空間(準確地說占用著指令**區),但不占用堆疊空間

而建立物件的時候,會根據物件的型別占用堆疊的空間(用傳統模式建立物件會占用棧空間,用引用+new模式建立物件會占用堆空間,同時引用會儲存在棧裡)

對於靜態(static)類來說,靜態類是不能例項化建立物件的,所有的成員都是靜態成員,也需要占用記憶體空間,但不在堆疊裡,而是在記憶體的靜態/全域性區(這個區域用於存放所有的全域性成員和靜態成員)。

上面的回答解釋了我,為什麼類中的變數可以初始化的疑惑。

可以初始化就證明在記憶體中可以占用空間。

C 類物件成員變數與成員函式記憶體分配問題

了解c 類位址的存放和分配等問題,能幫助我們更深入 更清晰了解類的組成及其使用。自己目前不是很清楚,先收集一些網上資料,而後再慢慢補充增加的了解.網路收集之 關於結構體和c 類的記憶體位址問題 今天終於有時間寫點東西了 太爽了 很多人都知道c 類是由結構體發展得來的,所以他們的成員變數 c語言的結構...

C 類物件成員變數與成員函式記憶體分配問題

很多人都知道c 類是由結構體發展得來的,所以他們的成員變數 c語言的結構體只有成員變數 的記憶體分配機制是一樣的。下面我們以類來說明問題,如果類的問題通了,結構體也也就沒問題啦。類分為成員變數和成員函式,我們先來討論成員變數。乙個類物件的位址就是類所包含的這一片記憶體空間的首位址,這個首位址也就對應...

C 類物件成員變數與成員函式記憶體分配問題

很多人都知道c 類是由結構體發展得來的,所以他們的成員變數 c語言的結構體只有成員變數 的記憶體分配機制是一樣的。下面我們以類來說明問題,如果類的問題通了,結構體也也就沒問題啦。類分為成員變數和成員函式,我們先來討論成員變數。乙個類物件的位址就是類所包含的這一片記憶體空間的首位址,這個首位址也就對應...