1.virtual 析构函数的作用
析构函数也可以是虚的,甚至是纯虚的。但是构造函数不能是虚的。
class A { public: virtual ~A()=0; // 纯虚析构函数 };
类型需要虚析构函数的另外一个特征是该类型具有指针成员或引用成员。如果有指针成员和引用成员,则该类型通常需要实现析构函数以及拷贝操作。通常,一个实现了析构函数的类型同时也需要实现拷贝构造函数与拷贝复制函数。
作为一个经验法则:如果你有一个带有虚函数功能的类,则它需要一个虚析构函数,原因如下:
析构函数也可以是虚的,甚至是纯虚的。但是构造函数不能是虚的。
class A { public: virtual ~A()=0; // 纯虚析构函数 };
类型需要虚析构函数的另外一个特征是该类型具有指针成员或引用成员。如果有指针成员和引用成员,则该类型通常需要实现析构函数以及拷贝操作。通常,一个实现了析构函数的类型同时也需要实现拷贝构造函数与拷贝复制函数。
作为一个经验法则:如果你有一个带有虚函数功能的类,则它需要一个虚析构函数,原因如下: