虚析构函数
虚析构函数是为了解决基类的指针指向派生类对象,并用基类的指针删除派生类对象。
虚析构函数使用
class Shape{public:Shape(); // 构造函数不能是虚函数virtual double calcArea();virtual ~Shape(); // 虚析构函数};class Circle : public Shape // 圆形类{public:virtual double calcArea();...};int main(){Shape * shape1 = new Circle(4.0);shape1->calcArea();delete shape1; // 因为Shape有虚析构函数,所以delete释放内存时,先调用子类析构函数,再调用基类析构函数,防止内存泄漏。shape1 = NULL;return 0;}
