一,c/c++記憶體模型
1.記憶體模型分類
堆區:由程式設計師分配和釋放,如果程式設計師沒有釋放則在程式結束時由os釋放,由於忘記釋放通常會出現記憶體洩露問題。
全域性(靜態)區:用來儲存全域性變數和靜態變數,程式結束時由os釋放。
常量區:存放字面量,不允許修改,如字串"hello,unreal",程式結束時由os釋放。
**區:存放**(如函式),不允許修改(類似常量區),但可以執行(不同於常量區)。
2.理解函式,**和記憶體分配的問題
函式是由一條條的操作指令(**)組合而成的,其指令可以是定義變數向記憶體申請空間,或者是操作指令,例如兩數相加。
二,c++中類和物件的記憶體分配模型
1.c++中類和物件
在c語言中,「資料」和「函式」是分開來宣告的,也就是說,語言並沒有支援「語言和函式」之間的關聯性。但是在c++中卻提供了「類」來將「資料」和「函式」繫結在了一起。c++中的類由成員變數,靜態成員變數,建構函式,成員函式,靜態函式和虛函式組成。下面我們來研究組成類的資料和函式是如何在記憶體中分配的。
2.c++中是如何管理類和物件的
我們首先來定義幾個類,然後對下面的**進行分析。
# includeusing3.上述**結果分析4.c++成員變數存放在物件中,那麼成員函式是如何管理的?namespace
std;
/*定義第乙個類:12個位元組
*/classc1;
/*定義第二個類:12個位元組
*/classc2;
/*定義第三個類:4個位元組
*/class
c3
int geta()//
0
static
void add()//0};
/*定義結構體:4個位元組
*/structs1;
intmain()
5.上述**總結
6.this指標
C 中的類與物件
什麼是類與物件?類是一種抽象化的資料型別,一般而言,它包括資料與處理資料的函式這兩大部分。而物件則是對某一類的例項。例如 class cmyclass cmyclass為類 cmyclass myclass myclass為物件1.類的定義與特點 類的定義示例如下 class cmyclass 各個...
c 中的類與物件
我們都知道,在c語言中,結構體是指一系列相同型別或者不同型別的資料構成的資料集合。在c語言中我們將結構體定義為 struct student 而我們知道,在c語言中,資料 和 處理資料的操作 函式 是分開的,語言本身並沒有支援 資料和函式 之間的關聯性。所以在c語言的結構體中,只能存放資料,定義變數...
C 類與物件(中)
類六個預設函式包括構造 拷貝構造 析構 賦值運算子過載 取位址操作符過載 const修飾的取位址操作符過載,預設生成 建構函式是乙個特殊的成員函式,名字與類名相同,建立類型別物件時由編譯器自動呼叫,保證每個資料成員 都有 乙個合適的初始值,並且在物件的生命週期內只呼叫一次 特性如下 1.函式名與類名...