可能重复:
在c ++中,函数名前面的"〜"表示什么?
线与〜和另一条线有什么区别?
public:
myClass() {};
~myClass() {};
Run Code Online (Sandbox Code Playgroud)
myClass(){}被称为构造函数,~myClass(){}被称为析构函数!
创建对象时调用构造函数,销毁对象时调用析构函数.
myClass *pObj = new myClass(); //constructor is invoked;
//work with pObj;
delete pObj; //destructor is invoked;
Run Code Online (Sandbox Code Playgroud)
这是一个使用new和的例子delete.new导致构造函数被调用,并delete导致析构函数被调用.
让我们看另一个例子:
{
myClass Obj; //constructor is automatically invoked;
//work with Obj;
} //<--here Obj goes out of scope which causes destructor to be automatically invoked;
Run Code Online (Sandbox Code Playgroud)
使用自动对象,将自动调用构造函数,当对象超出范围时,将自动调用析构函数.