C++中拷贝构造函数调用时机通常有三种情况
1、使用一个已经创建完毕得对象来初始化一个新对象
2、值传递的方式给函数参数传值
3、以值方式返回局部对象
下面举例说明:
class student{
public:
student(){
cout<<"无参构造函数"<<endl;
age = 0;
}
student(int aage){
cout<<"有参构造函数"<<endl;
age = aage;
}
student(const student&s1){
cout<<"拷贝构造函数"<<endl;
age = s1.age;
}
int age;
~student(){
cout<<"解析构造函数"<<endl;
}
}
上面写了三个构造函数,下面分别对三种情况讨论
1、使用一个已经创建完毕的对象来初始化一个新对象
void test01(){
student s1(10);
student s2(s1);
}
这个在main函数中运行是如下结果: