C++之不完整的数据类型释放

class Demo_Class;
void do_delete(Demo_Class* p)
{
    delete p;
}
class Demo_Class{
public:
    ~Demo_Class()
    {
        cout<<"析构";
    }
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// testConst();
auto p = new Demo_Class();
do_delete(p);
return a.exec();
}

不会调用析构,对于do_delete来说,

Demo_Class只有声明,数据类型不完整,掉不到析构。

所以说智能指针就能解决这个问题,内部会检查数据的完整性,不完整的话都编译不过哦
 
原文地址:https://www.cnblogs.com/xzlq/p/15256859.html