虚析构 父类指针指向子类对象时 Base *p = new Son(), delete p 如果析构函数不是虚函数,则只会调用父类析构函数,可能会造成只释放一部分空间。 如何是虚析构,则先调用子类析构,然后调用父类析构。 抽象类 纯虚函数 没有函数体且初始化为0的虚函数,用来定义接口规范 抽象类 含有纯虚函数的类,不可以实例化(不能创建对象)抽象类也可以包含非纯虚函数,成员变量如果父类是抽象类,子类没有完全重写纯虚函数,那么这个子类依然是抽象类