首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

指针析构解决办法

2013-09-28 
指针析构我在class B的头文件中定义了一个类的指针,比如说 class A* pA;我在B类的cpp文件中对pA进行赋值,

指针析构
我在class B的头文件中定义了一个类的指针,比如说 class A* pA;

我在B类的cpp文件中对pA进行赋值, pA = new A();

那么我在B的析构中要delete pA吗?
[解决办法]
不一定在析构函数里,而且找个最好也不好在析构函数里释放!

在任何地方,只要不在需要使用pA这个对象指针的时候就可以delete点pA了
[解决办法]
你不用的时候就delete它呗。不一定在析构里面
[解决办法]
构造函数中做过的一系列“构造”,析构函数中按相反顺序做对应的“析构”。
无new,无delete
[解决办法]
除非,你不打算使用析构和构造函数,也不打算让任何代码,调用构造函数和析构函数。

否则,构造初始化为NULL(或者0,nullptr),或者分配空间;
析构释放空间;
其他函数释放空间,并重新初始化为NULL,或者重新分配内存,就是最合理的做法了;
因为,构造函数的语法简单,析构函数是自动调用的,代码量大面积减少。

不然,每个对象都需要,记住释放其中的指针对应的内存,增加代码量;
还会可能经常因为忘了释放内存,造成内存泄露,多麻烦呀。

分配和释放都能够自动化,不用担心内存泄露,非常合理。

不知道,你担心什么,不在析构函数中释放内存。

如果不想自己这么做。可以使用智能指针。

热点排行