构造函数:
写法:类名()
person()
{
}
可以采用初始化参数列表的写法
person(int a,int b):m_a(a),m_b(b)
{
}
若不写构造函数则有默认的午餐构造函数
默认的无参构造函数可以用delete删除
class person
{
public:
person() = delete;
int m_a;
}
也可以自己用default写系统默认的无参构造函数
class person
{
public:
person() = default;
int m_a;
};
系统自带的默认无参构造函数调用比自己写的更快推荐用系统的
若自己写了构造函数则系统默认的无参构造函数就被删除了
系统自带了个拷贝构造函数但是是浅拷贝推荐自己手动深拷贝
析构函数格式
~person()
{
}
析构函数会在对象死亡前调用,不可以被重载
new出来的对象,delete的时候才会死亡然后调用析构函数
析构函数可以手动调用但是对象不会因为手动调用而死亡
static的对象要在程序关闭才会真的释放
构造和析构顺序相反