关于考贝构造函数解决思路
关于考贝构造函数
请问一下为什么fun这里会调用两次考贝构造函数?
------解决方案--------------------
fun(C1);
一次
return C;
二次
可以单步跟踪。
------解决方案--------------------
fun(C1);
第一次
return C;
第二次
可以单步跟踪。
------解决方案--------------------
class Test
{
public:
Test()
{
cout << "constructor "<< endl;
}
~Test ()
{
cout << "destructor "<< endl;
}
Test (Test & p)
{
cout << "copy constructor "<< endl;
}
};
Test fun(Test C)
{
return C;
}
void main()
{
Test C1;
fun(C1);
system("pause");
return ;
}
请问一下为什么fun这里会调用两次考贝构造函数?
------解决方案--------------------
fun(C1);
一次
return C;
二次
可以单步跟踪。
------解决方案--------------------
fun(C1);
第一次
return C;
第二次
可以单步跟踪。
------解决方案--------------------
拷贝构造函数调用:
1. 一个对象以值传递的方式传入函数体
2. 一个对象以值传递的方式从函数返回
3. 一个对象要通过另一个对象进行初始化。