注册 登录
编程论坛 C++教室

拷贝构造函数调用的三中情况

xinshou1991 发布于 2011-08-12 16:11, 1365 次点击
 在C++中,下面三种对象需要调用拷贝构造函数:   
1) 一个对象以值传递的方式传入函数体;   
2) 一个对象以值传递的方式从函数返回;   
3) 一个对象需要通过另外一个对象进行初始化;
希望高手们能一一举例说明下,例子越细越好啊!跪求啊! 在C++中,下面三种对象需要调用拷贝构造函数:   
1) 一个对象以值传递的方式传入函数体;   
2) 一个对象以值传递的方式从函数返回;   
3) 一个对象需要通过另外一个对象进行初始化;
希望高手们能一一举例说明下,例子越细越好啊!跪求啊!
3 回复
#2
baobaoisme2011-08-12 16:40
class A;
A a=b;        //1) 一个对象以值传递的方式传入函数体;b是一个A类型的对象   
A a=fun();    //2) 一个对象以值传递的方式从函数返回; 函数原型:A fun(); 返回一个A类型的对象  
A a(b);       //3) 一个对象需要通过另外一个对象进行初始化; 第三个应该是这样吧?

不知道是否符合楼主意思。
#3
lintaoyn2011-08-12 17:56
程序代码:
class Test
{
public:
    Test(){ }
    Test(const Test& a){ cout << "copy" <<endl;}
};
Test fun(Test a) //1
{
    Test b(a);//3
    return b;//2
}
int main()
{
    Test a;
    fun(a);
    return 0;
}
#4
xinshou19912011-08-13 11:53
嗯嗯..........那个啥.....醍醐灌顶啊!2楼和3楼的两位“前辈”谢谢啦
1