C++(二十九) — new 和 delete
阿新 • • 發佈:2019-01-03
1、基本用法,定義變數、陣列、物件
class test { public: test(int a_, int b_) { a = a_; b = b_; cout << "建構函式執行" << endl; } ~test() { cout << "解構函式執行" << endl; } private: int a; int b; }; int main() { // 1、定義一個int指標 int*p = new int; *p = 10; // 2、 定義指標時直接初始化賦值 int *p1 = new int(20); // 3、定義一個動態的整型陣列,就是申請了5個整型資料空間 int *p2 = new int[5]; p2[0] = 30;// 給第一個陣列空間賦值 cout << *p << " " << *p1 <<" "<<*p2<< endl; // 釋放空間 delete p, p1; // 釋放變數 delete []p2;//對於陣列的釋放// 4、定義物件指標 test *t = new test(1,2); delete t; system("pause"); return 0; }
2、new 、delete與c的malloc、free的區別
(1)malloc、free,在定義物件時,只會分配記憶體大小,不會呼叫類的構造、解構函式;
(2)new 、delete,不止會分配記憶體,也會呼叫構造、解構函式,初始化物件。