- c++中的面向对象来源于生活,每个对象都有初始设置和对象销毁前清理数据的设置。
- 对象的初始化和清理也是一个很重要的问题,一个对象或者变量没有初始状态,也不及时清理,会造成一定的安全问题。
- c++利用构造函数和析构函数解决了上述问题,这两个函数将会被编译器自动调用,完成对象初始化和清理工作,这是编译器强制做的事情,因此如果程序员不提供构造函数和析构函数,那么编译器提供的这两个函数是空实现。
1. 构造函数
主要作用在于创建对象是为对象的成员属性赋值,构造函数由编译器自动调用,无需手动调用。
语法:类名(){}
(1)构造函数,没有返回值
(2)函数名和类名相同
(3)构造函数可以有参数,因此可以发生重载
(4)程序在调用对象时自动调用,而且只调用一次
2. 析构函数
主要作用在于对象销毁前系统自动调用执行一些清理工作。
语法: ~类名(){}
(1)没有返回值
(2)函数名和类名相同,在名称前面加上符号~
(3)析构函数不可以有参数,因此不可以发生重载
(4)程序在对象销毁前会自动调用析构,而且值调用一次
示例:
1 |
|
运行结果:
1 | Person 的构造函数的调用 |