C++中的"~"是什么用?

What is '~' used for in C++?

本文关键字:是什么 中的 C++      更新时间:2023-10-16

可能重复:
在c++中,波浪号“”在函数名称表示之前?

带~的那条线和另一条线有什么区别?

public:    
       myClass() {};    
       ~myClass() {};

myClass(){}称为构造函数,~myClass(){}称为析构函数!

构造函数在创建对象时调用,析构函数在销毁对象时调用。

myClass *pObj = new myClass(); //constructor is invoked;
//work with pObj;
delete pObj; //destructor is invoked;

这是使用newdelete时的一个示例。new导致调用构造函数,delete导致调用析构函数。

让我们看看另一个例子:

{
    myClass Obj; //constructor is automatically invoked;
  //work with Obj;

} //<--here Obj goes out of scope which causes destructor to be automatically invoked;

对于自动对象,构造函数会自动调用,当对象超出范围时,析构函数会自动调用。

函数"myClass"是一个构造函数,在创建该类型的对象时调用。一个类可以提供多个不同的构造函数,这些构造函数可以用于创建(即构造(该类型的对象。

函数"~myClass"是一个析构函数,当该类型的对象被销毁时(当自动存储分配的实例超出范围时,或者当使用delete运算符删除了指向该类型的动态分配实例的指针时,就会调用该函数(。一个类可以提供多个构造函数,而一个类只能提供一个析构函数。

当类具有虚拟方法时,析构函数也应标记为虚拟。