如何在C++中指定一个方法作为析构函数而不是构造函数?

3 c++ constructor destructor class

如何在C++中将方法指定为析构函数而不是构造函数?这让我非常困惑.我无法分辨两者之间的区别.

Soo*_*Tan 14

这是一个例子:

MyClass::MyClass()   // Constructor 
MyClass::~MyClass()  // Destructor
Run Code Online (Sandbox Code Playgroud)

注意析构函数前面的"〜".

  • Nitpick:〜是*bitwise*not运算符,而不是*logical*not运算符. (4认同)
  • 〜是非操作员(逻辑),有趣的C++设计师 (3认同)

小智 5

如果您计划从该类派生,则需要在.h文件中添加virtual,如下所示:


class MyClass
{
  MyClass();   // Constructor 
  virtual ~MyClass();  // Destructor
};

这将确保在销毁派生类时调用基类和派生类的析构函数.