動態分配類物件與靜態分配類物件

2021-07-22 18:32:51 字數 812 閱讀 4904

動態分配類物件:就是使用運算子new來建立乙個類的物件,在堆上分配記憶體。

靜態分配類物件:就是a a,由編譯器建立類物件,在棧上分配記憶體。

1)動態分配類物件

把類的建構函式和析構函式設為protected屬性。類物件不能訪問,但是派生類可以繼承,也可以訪問。

同時,建立create和destroy兩個函式,用於建立類物件。

(create函式設為static,原因是,建立物件的時候a *p=a::create().只有靜態成員函式才能有類名直接訪問)

[cpp]view plain

copy

class

a    

~a() {}  

public

:  static

a* create()  

void

destroy()  

};  

2)靜態分配物件

[cpp]view plain

copy

class

a   

void

operator 

delete

(void

*ptr)

//過載了new,就需要過載delete

public

:  a() {}  

~a() {}  

}  

只能動態 靜態分配類物件

只能動態分配類物件.cpp 定義控制台應用程式的入口點。include stdafx.h include using namespace std 只在堆上建立 把析構函式設定為私有即可,但是這樣的話以它為基類的派生類就不能訪問析構函式來釋放資源了 因此設定成protect 只能在類內或派生類內訪問。...

動態分配與靜態分配記憶體

記憶體的靜態分配和動態分配的區別主要是兩個 一是時間不同。靜態分配發生在程式編譯和連線的時候。動態分配則發生在程式調入和執行的時候。二是空間不同。堆都是動態分配的,沒有靜態分配的堆。棧有2種分配方式 靜態分配和動態分配。靜態分配是編譯器完成的,比如區域性變數的分配。動態分配由函式malloc進行分配...

靜態分配和動態分配

記憶體的靜態分配和動態分配的區別主要是兩個 一是時間不同。靜態分配發生在程式編譯和連線的時候。動態分配則發生在程式調入和執行的時候。二是空間不同。堆都是動態分配的,沒有靜態分配的堆。棧有2種分配方式 靜態分配和動態分配。靜態分配是編譯器完成的,比如區域性變數的分配。動態分配由函式malloc進行分配...