如果我现在有一个类名字叫lvmao,且我没有定义构造函数都是编译器自动给的
lvmao t2;
第一种就是lvmao t1=lvmao(t2);//调用的时候会走拷贝构造函数
第二种就是lvmao t1=t2;//还是会走拷贝构造函数
void demo(lvmao T){
}
第三种上述的函数的调用的时候在实参的传递的时候会调用拷贝构造函数,得到T这个对象.
lvmao demo2(){
lvmao tq;
return tq;
}
第四种在返回tq的时候会执行一次拷贝构造函数,tq会被销毁,返回的是一个匿名的对象,接受的时候也有两种不同的情况:
(1)lvmao t1=demo2();//相当于是直接将匿名的对象给了这个t1;
(2)lvmao t2;
t2=demo2();//这种会再次的执行拷贝构造函数,最终匿名对象会被销毁,而不是将匿名对象给上名字就可以的。