數據庫sql語句大全實例「delete語句怎麼寫」

C++在回收用 new 分配的單個對象的內存空間時,直接用 delete;回收用 new[] 分配的數組對象的內存空間時,需要用 delete[]。

  • 調用 new 所包含的動作:從系統中申請一塊內存,並調用對象的構造函數;
  • 調用 delete 所包含的動作:先調用對象的析構函數,然後將內存歸還系統;
  • 調用 new[n] 所包含的動作:申請可容納 n 個對象的空間,並調用 n 次構造函數來初始化這 n 個對象;
  • 調用 delete[] 所包含的動作:先調用 n 次對象的析構函數,再將內存歸還系統。

比如下面這段代碼:

#include <iostream>
using namespace std;

class Student {
public:
    Student() {
        cout << "1. Constructor" << endl;
    }
    ~Student() {
        cout << "2. Destructor" << endl;
    }
};

int main()
{
    Student* stu = new Student();
    delete stu;
    stu = nullptr;
  
    cout << "---" << endl;
  
    Student* stuArr = new Student[2];
    delete[] stuArr; // 不要漏了[]
    stuArr = nullptr;
  
    return 0;
}

運行結果為:

C++中delete對象和數組對象的用法

需要注意的是:若將 delete[] stuArr 改為 delete stuArr,則會導致 stuArr 指向的2個Student對象中的剩餘1個未被銷毀,造成內存泄漏。

C++中delete對象和數組對象的用法
C++中delete對象和數組對象的用法

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/269325.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-16 13:15
下一篇 2024-12-16 13:15

相關推薦

發表回復

登錄後才能評論