码迷,mamicode.com
首页 > 其他好文 > 详细

警告: deleting object of polymorphic class type which has non_virtual destructor

时间:2018-06-07 13:55:29      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:type   object   函数声明   delete   派生   析构函数   基类   函数   strong   

如果基类里有虚函数,定义了基类指针指向派生类,就会需要定义基类虚析构,这样,基类指针析构的时候,就会先析构派生类,再析构基类。

 

在用基类指针指向派生类时,

在基类析构函数声明为virtual的时候,delete基类指针,会先调用派生类的析构函数,再调用基类的析构函数。

在基类析构函数没有声明为virtual的时候,delete基类指针,只会调用基类的析构函数,而不会调用派生类的析构函数,这样会造成销毁对象的不完全。

 

警告: deleting object of polymorphic class type which has non_virtual destructor

标签:type   object   函数声明   delete   派生   析构函数   基类   函数   strong   

原文地址:https://www.cnblogs.com/amwuau/p/9149938.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!