C++中的虚析构函数

来源:互联网 发布:我的世界编程一小时 编辑:程序博客网 时间:2024/04/28 01:47

基类的析构函数一般都是虚函数,为什么呢?

 

因为如果不把基类的析构函数定义为虚函数,当用一个基类的指针指向子类的对象,delete 该指针时,子类的析构函数并不会被调用。(具体原因可参见博客: C++虚函数表 )

 

当然,并不是要把所有类的析构函数都写成虚函数。因为当类里面有虚函数的时候,编译器会给类添加一个虚函数表,里面来存放虚函数指针,这样就会增加类的存储空间。所以,只有当一个类被用来作为基类的时候,才把析构函数写成虚函数。

 

 

原创粉丝点击