1. 程式人生 > >C++(二十九) — new 和 delete

C++(二十九) — new 和 delete

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,不止會分配記憶體,也會呼叫構造、解構函式,初始化物件。