一、C++ 内存泄露
C++本身没有GC机制,所以需要开发人员做好内存管理。一般情况,C++内存泄露主要原因为:
1. 在构造和析构函数中,没有匹配new和delete;
2. 没有将基类的析构函数定义为virtual(如果没有定义virtual的话,析构函数只清理自己的成员)
二、虚析构函数的作用
下面根据三个场景来说明基类中virtual虚析构函数的作用
1. 派生类指针指向派生类对象
#include <iostream>
using namespace std;
class Father{
public:
Father(){
cout << "Father()" << endl;
}
virtual ~Father(){
cout << "~Father()" << endl;
}
};
class Son : public Father{
public:
Son(){
cout