您好,登录后才能下订单哦!
本篇内容主要讲解“C++中delete函数如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++中delete函数如何使用”吧!
在C++中delete函数用于回收new分配的内存空间。
C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。
关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2) 为自定义类型分配和回收空间。
在针对简单的基本数据类型,使用delete也可以回收 new[] 分配的一组对象的内存空间,因为:基本的数据类型对象没有析构函数,并且new 在分配内存时会记录分配的空间大小,则delete时能正确释放内存,无需调用析构函数释放其余指针。因此两种方式均可。
但是在对于自定义类型的时候,使用new[] 分配的一组对象的内存空间最好还是要用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; }
结果:
可以看到在使用delete回收p1时,析构函数只调用了一次,也就是p1[0]的析构函数,使用delete[]回收p2时,析构函数全部调用了。所以如果在分配时使用new[],回收时最好用delete[]。
到此,相信大家对“C++中delete函数如何使用”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。