C++ 类 析构函数

您所在的位置:网站首页 构造函数的作用是什么 C++ 类 析构函数

C++ 类 析构函数

#C++ 类 析构函数| 来源: 网络整理| 查看: 265

一、析构函数的定义

析构函数为成员函数的一种,名字与类名相同,在前面加‘~’没有参数和返回值在C++中“~”是位取反运算符。一个类最多只能有一个析构函数。析构函数不返回任何值,没有函数类型,也没有函数参数,因此它不能被重载。

构造函数可能有多个,但析构函数只能有一个,就像人来到人世间,可能出生的环境家庭不同(重载构造函数),但最终都会死亡(析构函数)。

class C { public: ~C ( ) { } ~C (int i) { } // error C2524: “C”: 析构函数 必须有“void”参数列表 // warning C4523: “C”: 指定了多个析构函数 };

析构函数对象消亡时即自动被调用。可以定义析构函数来在对象消亡前做善后工作,比如释放分配的空间等。如果定义类时没写析构函数,则编译器生成缺省析构函数。缺省析构函数什么也不做。如果定义了析构函数,则编译器不生成缺省析构函数。析构函数的作用并不是删除对象,而是在撤销对象占用的内存之前完成一些清理工作。

例:

class A { private : char * p; public: A ( ) { p = new char[10]; } ~ A ( ) { delete [] p; } };

若A类没写析构函数,则在生成A对象后,new出来的内存空间未清除,可能造成内存泄露。

 

在创建一类的对象数组时,对于每一个数组元素,都会执行缺省的构造函数。同样,对象数组生命期结束时,对象数组的每个元素的析构函数都会被调用。

#include using namespace std; unsigned count = 0; class A { public: A ( ) { i = ++count; cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3