4.2.3 析构函数
析构函数也是一种特殊的成员函数,它执行和构造函数相反的工作。析构的特殊性质如下:
析构函数名称与类名相同,但前面加一个"~"。
一个类中只有一个析构函数,并且该函数不带任何参数。
当撤销对象时编译系统自动调用析构函数。
若程序员没有定义析构函数,编译系统会生成析构函数。
【示例4.13】 析构函数的使用。在类中定义一个成员函数,该函数的名称与类名相同,并且在前面添加一个"~",即定义了析构函数。
- #include"iostream.h"
- #include"math.h"
- class point
- {
- private:
- int x;int y;
- public:
- float distance()
- {
- return sqrt(x*x+y*y);
- }
- point(int a,int b)
- {
- cout<<"构造函数被调用"<<endl;
- x=a;y=b;
- }
- ~point()
- {
- cout<<"析构函数被调用"<<endl;
- }
- };
- void main()
- {
- point A(2,3);
-
- }
程序运行结果如下所示。
- 构造函数被调用
- 析构函数被调用
分析:上例中在定义类的对象时,会自动调用类的构造函数。此时会输出一行,应用程序结束之前,系统会自动撤销对象,此时会调用析构函数。同时需要注意的是析构函数是不可以拥有参数的。
注意:前面在讲解函数时说过,如果一个函数没有定义一个返回类型,那么它会返回一个整数。然而,构造函数和析构函数都不可以被显式调用,它没有返回值。所以定义构造函数和析构函数时不可以指定返回类型,甚至定义为void类型也是错误的。
【责任编辑:
云霞 TEL:(010)68476606】