展开全部
不会啊
对象本身已经构建起来了,所以不用调用构造函数.
return *this; 只会磨灶把对象本身当做类成员函数的结果,进行传参数或赋值
拷贝构造函数主要在以下三种情况下起初始化作用:
1. 在声明语句中用一个对象初始化另一个对象;
2. 将一个对象作为参数按值调用方式传递给另一个对象时生成对象副本;
3. 生成一个临时对象作为函数的返回结果。
第三种情况是这样的:
生成一个临时对象作为函数的返回结果时,如果返回结果有拷贝构造函数就会调用返回结果的拷贝构造函烂游山数进行初始化,而且是在return语句执行时进行,并且在return完成时调用析构函数,例如:
程序代码:[ 复制代码到剪贴板 ]
FOO get_object() {
FOO obj;
return obj;
}
FOO myobj;
myobj=get_object();
在函数get_object()内部,先进行obj的初始化,在执行到return语句时,创建一个临时对象,调用拷贝构造函数用obj作为参数对临时对象进行初始化,而之后则是先进行函数内部对象变量的析构,再进行临时变量的析构,因为临时变饥中量要在函数外部对可能接收返回值的变量进行赋值。
对象本身已经构建起来了,所以不用调用构造函数.
return *this; 只会磨灶把对象本身当做类成员函数的结果,进行传参数或赋值
拷贝构造函数主要在以下三种情况下起初始化作用:
1. 在声明语句中用一个对象初始化另一个对象;
2. 将一个对象作为参数按值调用方式传递给另一个对象时生成对象副本;
3. 生成一个临时对象作为函数的返回结果。
第三种情况是这样的:
生成一个临时对象作为函数的返回结果时,如果返回结果有拷贝构造函数就会调用返回结果的拷贝构造函烂游山数进行初始化,而且是在return语句执行时进行,并且在return完成时调用析构函数,例如:
程序代码:[ 复制代码到剪贴板 ]
FOO get_object() {
FOO obj;
return obj;
}
FOO myobj;
myobj=get_object();
在函数get_object()内部,先进行obj的初始化,在执行到return语句时,创建一个临时对象,调用拷贝构造函数用obj作为参数对临时对象进行初始化,而之后则是先进行函数内部对象变量的析构,再进行临时变量的析构,因为临时变饥中量要在函数外部对可能接收返回值的变量进行赋值。
展开全部
总是会调旅悉用复制构造函高稿数的~
无论是使用它对其他对象赋值或是初始化戚镇孝,均会调用。
可以参考:
http://blog.csdn.net/yczxwestwood/article/details/4158402
无论是使用它对其他对象赋值或是初始化戚镇孝,均会调用。
可以参考:
http://blog.csdn.net/yczxwestwood/article/details/4158402
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询