虚析构函数

Why

用一个基类的指针删除一个派生类的对象时,派生类的析构函数会被调用。否则只有基类的析构函数会被调用。

How

  • 为多态基类声明虚析构。
  • 如果class有virtual函数,往往意味着它是多态基类,应该有一个virtual析构函数。
  • 如果class不是作为基类使用,或不是为了具备多态性,就不该声明virtual析构函数。

Related

虚函数:为了让基类指针调用子类该函数。虚函数地址晚绑定
纯虚函数:存在纯虚函数为抽象类,子类必须实现该函数。

你可能感兴趣的:(c++,多态)