读书人

关于考贝构造函数解决思路

发布时间: 2013-01-06 15:44:47 作者: rapoo

关于考贝构造函数


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. 一个对象要通过另一个对象进行初始化。

读书人网 >C++

热点推荐