构造函数
构造函数四要素:
- 无返回值
- 函数名与类名相同
- 参数自定义,可重载
- 访问权限为
public
在对象实例化时则可能会调用构造函数初始化对象。
析构函数
构造函数三要素:
- 无返回值
- 函数名为 ‘~’ + 类名
- 访问权限为
public
在对象销毁时调用析构函数。
拷贝构造函数
拷贝构造函数四要素:
- 无返回值
- 函数名与类名相同
- 参数类型为 const + 类名 + &
- 访问权限为
public
函数值传递和值返回时会调用拷贝构造函数。
堆区或地址的拷贝构造要注意浅拷贝和深拷贝!
class person {
private:
std::string name;
int age;
public:
// 无参构造
person() {
name = "Song J";
age = 20;
}
// 有参构造
person(std::string n, int a) {
name = n;
age = a;
}
// 析构
~person() {}
// 拷贝构造
person(const person& p) {
name = p.name;
age = p.age;
}
};