多态基类声明virtual析构函数

Quote *itemP = new Quote;       //类型一致
delete itemp;                   //调用基类的析构函数
itemP = new Bulk_quote;         //动态类型与静态类型不一致,正确调用派生类的析构函数

如果基类的函数不是虚函数,则delete一个指向派生类对象的基类指针会产生未定义的行为!!!

 


 

如果class不含virtual函数,通常表示它并不意图做一个base class。 当class不企图被当作base class,令其析构函数为virtual往往是不好的。

(会有额外的开销)

 

posted on 2016-11-22 10:08  ToBeAprogrammer  阅读(62)  评论(0)    收藏  举报

导航