一.用new和delete申請記憶體
在c++中用new和delete代替malloc和free
申請乙個物件:
int* p = new int;
釋放:delete p;
注意(1)new的返回值就是物件指標,不用再轉換了
(2)new的時候可以設定初值 new int(12)
申請多個物件
int* p = new int [1024];
釋放:delete p;
注意(1)用制定物件個數
(2)如果new的時候用了,那麼在釋放的時候就用delete .
#include
#include
#include
struct student
;int
main()
delete [
] st;
return0;
}
//注意:和free一樣,delete後的記憶體不能再使用了
delete p;
p = null;//最好置為空指標
二.new和delete建立物件
對於class型別,必須用new和delete來建立和銷毀
new:動態建立乙個物件
(1)申請乙個記憶體
(2)內部呼叫了建構函式
delete:釋放這個物件
(1)呼叫析構函式
(2)釋放記憶體
circle* c = new circle(); //預設建構函式
circle* c = new circle; //不加括號也可以
circle* c = new circle(1,1,4); //傳構造引數
#include
#include
#include
class circle
circle
(int x,
int y,
int radius)
~circle()
private:
int x,y,radius;};
intmain()
動態物件建立
c 的動態物件建立 當建立乙個c 物件時,會發生兩件事 1 為物件分配記憶體 2 呼叫建構函式來初始化那個記憶體 然而,為物件分配記憶體可以用以下幾種方式或在可選擇的時間發生 1 在靜態儲存區域,儲存空間在程式開始之前就可以分配。這個儲存空間在整個執行期間都存在。2 無論何時到達乙個特殊的執行點 左...
MFC動態建立物件
define implement dyncreate class name,base class name cobject pascal class name createobject implement runtimeclass class name,base class name,0xffff,...
動態建立dom物件
在我們實際的專案之中,相信有很多的朋友直接使用了以下的格式建立dom元素 而且用的應該是還是樂此不疲,但是有多少人知道這是錯誤的做法 錯誤的原因 1 在頁面載入時改變了頁面的結構.在ie6中如果網路變慢或者頁面內容太大就會出現 終止操作 的錯誤.也就是說 永遠不要在頁面載入時改變頁面的dom模型 2...