//构造函数的调用规则
//默认情况下,c++编译器会给一个类添加三种函数
//1、默认构造函数(无参,函数体为空)
//2、默认析构函数( 无参,函数体为空)
//3、默认拷贝构造函数,对属性进行值拷贝
//调用规则:
//1、用户定义了有参构造函数,编译器不再提供无参构造函数,但是会提供默认拷贝构造函数
//2、如果用户定义了拷贝构造函数,那么编译器不再提供其他构造函数
#include<iostream>
using namespace std;
class person{
public:
person(){
cout<<"person的默认构造函数输出"<<endl;
}
person(int age){
cout<<"person的传参构造函数输出"<<endl;
m_age=age;
}
person(const person &p){
m_age=p.m_age ;
cout<<"person的拷贝构造函数输出"<<endl;
}
~person(){
cout<<"person的析构函数输出"<<endl;
}
public:
int m_age;
};
void test01(){
person p;//调用的输出结果为“person的默认构造函数输出”
p.m_age=18;
person p2(p);//调用的输出结果为“person的拷贝构造函数输出”
cout<<"p2的年纪为:"<<p2.m_age<<endl;
}
int main(){
test01();
return 0;
}