31 结构体与类之构造函数与析构函数
在上一篇内容中,我们学习了结构体与类的基本概念,包括它们的定义与使用方法。这一篇,我们将深入探讨构造函数
和析构函数
的概念,以及它们在 C++ 中如何使用。构造函数和析构函数是面向对象编程中重要的组成部分,它们涉及到对象的生命周期。
构造函数
构造函数是一个特殊的成员函数,用于初始化对象的状态。构造函数的名称与类名相同,并且没有返回值,即使是void
也不需要。可以有多个构造函数通过不同的参数列表实现重载。
构造函数的特点
- 名称:与类名相同。
- 无返回值:构造函数不能有返回值。
- 自动调用:无须手动调用,创建对象时自动执行。
- 重载:可以有多个构造函数,支持不同的参数列表。
示例
下面是一个简单的Person
类的定义,包含构造函数:
1 |
|
在这个示例中,Person
类定义了一个默认构造函数和一个带参数的构造函数。在main
函数中,我们创建了两个Person
对象,分别使用不同的构造函数来初始化它们的属性。
析构函数
析构函数是一个特殊的成员函数,用于清理对象占用的资源(例如内存、文件句柄等)。与构造函数类似,析构函数的名称与类名相同,但在名称前加上~
符号,并且无参数且无返回值。
析构函数的特点
- 名称:与类名相同,但前面有
~
。 - 无返回值:析构函数没有返回值。
- 自动调用:对象生命周期结束时自动调用。
- 不重载:只能有一个析构函数。
示例
下面是一个示例,演示了Person
类中添加析构函数:
1 |
|
在这个示例中,每当创建一个Person
对象时,构造函数被调用并输出一条信息。当person
对象的生命周期结束时,析构函数被自动调用,输出另一条信息。这清楚地表明了对象的创建和结束。
小结
在这一节中,我们学习了构造函数
和析构函数
的基本概念和使用方法。构造函数用于对象初始化,而析构函数则用于进行清理工作。理解这两个函数对于管理 C++ 中的资源是至关重要的。
在下面的部分,我们将进入到更复杂的主题,即文件操作,包括如何进行文件的读取与写入,这将为我们在编程中如何利用文件资源开辟新的视角。
31 结构体与类之构造函数与析构函数