c++虚函数和多态
本实验通过两组实验来对比virtual对函数执行情况的影响。第一组实验用于验证virtual关键字对析构函数执行顺序的影响。第二组实验用于virtual关键字对一般函数执行的影响。
实验1:virtual析构函数
类结构:假设有基类A,A有派生类B1和B2,B2有派生类B3。
我们用三组实验来对照virtual关键字对析构函数执行的影响
基类A的析构函数~A不加virtual关键字,子类B1析构函数加virtual,子类B2析构函数不加virtual
基类A的析构函数~A加virtual关键字,子类B1析构函数加virtual,子类B2析构函数不加virtual,子类B3析构函数不加virtual
基类A的析构函数~A加virtual关键字,子类B1析构函数加virtual,子类B2析构函数加virtual
实验1.1
基类A的析构函数~A不加virtual关键字,子类B1析构函数加virtual,子类B2析构函数不加virtual
#include <iostream>
using namespace std;
class A{
public:
~A();
};
A::~A(){
cout<<"destruct A"<<endl;
}
class B1 : public A{
public:
virtual...