智能指针和析构函数

fex*_*fex 7 boost destructor class smart-pointers

我想知道当我不再使用原始指针时,是否需要在类中编写析构函数?只需提升智能指针.

gym*_*all 11

提升智能指针本身与析构函数的需求无关.他们所做的就是不再需要在他们有效管理的已分配内存上调用delete.所以说,如果在你开始使用智能指针之前你所有的析构函数都是调用删除和删除[]释放动态分配的类成员的内存,你现在已经将所有那些常规指针切换到智能指针,你可以可能只是切换到一个空的析构函数,因为当它们超出范围时它们现在将自行清理.

但是,如果由于某种原因,您有一个需要进行清理的类(文件清理,套接字,其他资源等),您仍然需要提供一个析构函数来执行此操作.

如果有帮助,请告诉我.