【笔记】C++类的构造函数和析构函数

类的构造函数

类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。

构造函数的名称与类的名称是完全相同的,构造函数可用于为某些成员变量设置初始值。构造函数不需要指定返回值类型,因为不会返回任何类型,也不会返回 void。

举个例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
using namespace std;

class Line
{
public:
int length;
Line(int len){
// 这是构造函数
length=len;
}
};
// 程序的主函数
int main( )
{
Line line(6);// 设置长度
cout << "Line的length:" << line.length <<endl;
return 0;
}

使用初始化列表来初始化字段

使用初始化列表来初始化字段,以上面的Line为例:

1
2
3
Line(int len):length(len) {
...
}

上面的代码等同于下面这段:

1
2
3
Line(int len){
length=len;
}

假设有一个类 C,具有多个字段 x、y、z 等需要进行初始化,同理地,您可以使用上面的语法,只需要在不同的字段使用逗号进行分隔,如下所示:

1
2
3
4
C::C( double a, double b, double c): x(a), y(b), z(c)
{
...
}

类的析构函数

类的析构函数是类的一种特殊的成员函数,它会在每次删除所创建的对象时执行。

析构函数的名称与类的名称是完全相同的,只是在前面加了个波浪号(~)作为前缀,它不会返回任何值,也不能带有任何参数。析构函数有助于在跳出程序(比如关闭文件、释放内存等)前释放资源。

举个例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;

class Line
{
public:
int length;
Line(int len){
// 这是构造函数
length=len;
}
~Line(void){
// 这是析构函数
cout<<"该对象已经被销毁"<<endl;
}
};
// 程序的主函数
int main( )
{
Line line(6);// 设置长度
cout << "Line的length:" << line.length <<endl;
return 0;
}