虚析构函数
一般标记了virtual的关键字就是虚函数,虚函数就代表这个函数之后要进行重写;
虚函数增加virtual之后是将会将子类的函数扩展添加进去,而不是重写。
class Base {
public:
Base() { std::cout << " Base Constructor---\n"; }
virtual ~Base() {
std::cout << "Base Destructor---\n";
}
};
class Derive :public Base {
public:
int* m_array;
public:
Derive() {
m_array = new int[5];
std::cout << "Derive Constructor---\n";
}
~Derive() {
delete m_array;
std::cout << "Derive Destructor---\n";
}
};
int main() {
Base* derive = new Derive();
delete derive;
}