C++中的"~"是什么用?
What is '~' used for in C++?
可能重复:
在c++中,波浪号“”在函数名称表示之前?
带~的那条线和另一条线有什么区别?
public:
myClass() {};
~myClass() {};
myClass(){}
称为构造函数,~myClass(){}
称为析构函数!
构造函数在创建对象时调用,析构函数在销毁对象时调用。
myClass *pObj = new myClass(); //constructor is invoked;
//work with pObj;
delete pObj; //destructor is invoked;
这是使用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;
对于自动对象,构造函数会自动调用,当对象超出范围时,析构函数会自动调用。
函数"myClass"是一个构造函数,在创建该类型的对象时调用。一个类可以提供多个不同的构造函数,这些构造函数可以用于创建(即构造(该类型的对象。
函数"~myClass"是一个析构函数,当该类型的对象被销毁时(当自动存储分配的实例超出范围时,或者当使用delete
运算符删除了指向该类型的动态分配实例的指针时,就会调用该函数(。一个类可以提供多个构造函数,而一个类只能提供一个析构函数。
当类具有虚拟方法时,析构函数也应标记为虚拟。
相关文章:
- 什么是现实中的"endl"(或任何输出操纵器)?它是如何实现的,它如何与操作员<<一起工
- 什么是C++中的类型别名?
- 什么是 C# 中的双指针等效项
- dev 什么是 c++ 中的 int (*) [ someValue]?
- 什么是 SDL 中的 &ff Mix_HookMusic文档中的说明
- 什么是C++中的constexpr
- 什么是QT中的事件循环
- 什么是 gdb 中的 inf
- 什么是 C 语言中的 &&&&&操作
- 什么是 C 语言中的 &&&&操作
- 什么是C++中的容器类,任何人都可以举个好例子
- 什么是C++中的作用域指针
- 什么是OOP中的对象范围
- 什么是Noinst_libfoo_ladir中的Ladir
- 什么是opencv中的~运算符,C++
- 一个物体在记忆中是什么样子的
- C++:文本文件中的数据是什么类型的
- 派生类对象是否包含基类的私有成员?它在记忆中是什么样子的
- 当函数返回值是指针,而返回类型是c++中的引用时会发生什么
- SKAction.WaitForDuration的Xamarin/C++中的完成处理程序是什么样子的