在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
delete=1.调用析构函数,释放对象中的成员资源 2.归还对象空间(free) 其中在调用析构函数的时候,有可能还会对其他对象进行delete,然后调用这个对象的析构函数。。。 看这个例子: 转载原文地址: https://www.cnblogs.com/wycnb/p/4664934.html delete用于释放new在堆中动态生成的对象空间。 然后delete再释放整个对象所占的内存空间 //delete s的过程中首先调用析构函数~simple()释放成员资源,然后释放对象的空间 //在~simple()的过程中:因为simple()的过程中,有开辟新空间,所以这个必须delete,如果这个过程中没有new,那么这里也没必要delete,在这个delete的过程中,也调用了int这个类的析构函数,在int这个类里的析构函数中,首先释放成员资源,然后释放空间,当整个对象中的成员资源被释放之后,等于是该对象的析构函数执行完毕。然后delete释放整个对象的空间。
而delete this如果发生在析构函数中,每次delete---->调用析构函数,析构函数又delete this导致了堆栈内存。。。 如果是发生在成员函数中,之后如果不用到成员资源(比如某个成员变量和虚函数)可以,如果用到,会报错,因为这块资源已经被释放掉,找不到数据了。
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论