本文主要是介绍C++中的虚析构函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
基类的析构函数一般都是虚函数,为什么呢?
因为如果不把基类的析构函数定义为虚函数,当用一个基类的指针指向子类的对象,delete 该指针时,子类的析构函数并不会被调用。(具体原因可参见博客: C++虚函数表 )
当然,并不是要把所有类的析构函数都写成虚函数。因为当类里面有虚函数的时候,编译器会给类添加一个虚函数表,里面来存放虚函数指针,这样就会增加类的存储空间。所以,只有当一个类被用来作为基类的时候,才把析构函数写成虚函数。
这篇关于C++中的虚析构函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!