- 构造函数: 创建一个类的成员时对其进行一系列的初始化操作。
- 析构函数: 对象销毁时调用析构函数对对象进行清理操作。
语法: 类名(){}
- 构造函数没有声明类型
- 构造函数名称必须与类名相同
- 构造函数可有参数,可以重载
语法: ~类名(){}
- 析构函数没有声明类型
- 析构函数名称必须与类名相同前加 ~
- 构造函数不可有参数
class Person {
string m_name;
int m_age;
public:
Person() {
cout << "这是Person的无参构造函数(默认构造函数)" << endl;
}
Person(string name, int age) {
m_name = name;
m_age = age;
cout << "这是Person的有参构造函数" << endl;
}
~Person() {
cout << "这是Person的析构函数 " << endl;
}
};
构造函数的分类以及调用方式
分类方式
- 按照参数:有参构造与无参构造
- 按照类型:普通构造与拷贝构造
- 括号法
- 显式法
- 隐式转换法
//括号法
Person p;//括号法调用默认构造函数时不能加括号否则识别为函数声明 Person p();
Person p("张三", 28);
//显式法
Person p = Person("张三", 28);
Person p = Person(p);
//Person(参数)生成匿名对象, 该行结束时对象立即析构
//隐式转换法
Person p = {"张三", 28};//C++11 列表初始化
Person p1 = p;
暑期编程PK赛
得CSDN机械键盘等精美礼品!

![[C++学习第n天]类与对象---构造函数与析构函数 [C++学习第n天]类与对象---构造函数与析构函数](http://www.mshxw.com/aiimages/31/1015718.png)
