本文共 228 字,大约阅读时间需要 1 分钟。
假设有基类 A, 继承类 B,基类A的析构函数不为虚函数,代码实例如下:
执行代码 delete pb,执行结果为:
执行代码 delete pa,执行结果为:
如果基类 A的析构函数为 虚函数,代码为:
执行 delete pb,结果为:
执行 delete pa,结果为:
可见,当使用基类指针指向继承类对象时,只有基类的析构函数为虚函数时,才能通过基类指针删除继承类对象,释放掉继承类所占用的内存空间。
至于为什么必须是虚函数?不是很理解,欢迎补充!