亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++中delete函數(shù)的具體使用

 更新時(shí)間:2023年03月09日 14:34:02   作者:SuperYue37  
本文主要介紹了C++中delete函數(shù)的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

在C++中delete函數(shù)用于回收new分配的內(nèi)存空間。

C++告訴我們?cè)诨厥沼?new 分配的單個(gè)對(duì)象的內(nèi)存空間的時(shí)候用 delete,回收用 new[] 分配的一組對(duì)象的內(nèi)存空間的時(shí)候用 delete[]。

關(guān)于 new[] 和 delete[],其中又分為兩種情況:(1) 為基本數(shù)據(jù)類型分配和回收空間;(2) 為自定義類型分配和回收空間。

在針對(duì)簡(jiǎn)單的基本數(shù)據(jù)類型,使用delete也可以回收 new[] 分配的一組對(duì)象的內(nèi)存空間,因?yàn)椋夯镜臄?shù)據(jù)類型對(duì)象沒(méi)有析構(gòu)函數(shù),并且new 在分配內(nèi)存時(shí)會(huì)記錄分配的空間大小,則delete時(shí)能正確釋放內(nèi)存,無(wú)需調(diào)用析構(gòu)函數(shù)釋放其余指針。因此兩種方式均可。

但是在對(duì)于自定義類型的時(shí)候,使用new[] 分配的一組對(duì)象的內(nèi)存空間最好還是要用delete[]回收。

例:

#include <iostream>;
using namespace std;
 
class T {
public:
  T() { cout << "constructor" << endl; }
  ~T() { cout << "destructor" << endl; }
};
 
int main()
{
  const int NUM = 3;
 
  T* p1 = new T[NUM];
  cout << p1 << endl;                            //輸出P1的地址
  //  delete[] p1;
  delete p1;
 
  T* p2 = new T[NUM];
  cout << p2 << endl;                                    //輸出P2的地址
  delete[] p2;
  return 0;
}

結(jié)果:

可以看到在使用delete回收p1時(shí),析構(gòu)函數(shù)只調(diào)用了一次,也就是p1[0]的析構(gòu)函數(shù),使用delete[]回收p2時(shí),析構(gòu)函數(shù)全部調(diào)用了。

所以如果在分配時(shí)使用new[],回收時(shí)最好用delete[]。

到此這篇關(guān)于C++中delete函數(shù)的具體使用的文章就介紹到這了,更多相關(guān)C++ delete函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論