基类析构函数为虚函数的研究

来源:互联网 发布:音效下载 知乎 编辑:程序博客网 时间:2024/05/16 02:39



假设有基类 A, 继承类 B,基类A的析构函数不为虚函数,代码实例如下:



执行代码 delete pb,执行结果为:



执行代码 delete pa,执行结果为:




如果基类 A的析构函数为 虚函数,代码为



执行 delete pb,结果为



执行 delete pa,结果为:





可见,当使用基类指针指向继承类对象时,只有基类的析构函数为虚函数时,才能通过基类指针删除继承类对象,释放掉继承类所占用的内存空间。



至于为什么必须是虚函数?不是很理解,欢迎补充!


0 0
原创粉丝点击