首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2013-01-06 
关于考贝构造函数class Test{public:Test(){cout constructor endl}~Test (){cout destructo

关于考贝构造函数


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

热点排行