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

copy constructor解决方案

2012-05-12 
copy constructor语句Fraction f3 f1.add(f2)(Fraction 是类类型,f1,f2,f3是该类型对象)是不是调用了3

copy constructor
语句 Fraction f3 = f1.add(f2); (Fraction 是类类型,f1,f2,f3是该类型对象)是不是调用了3次复制构造函数?一次是对象f2作为参数传递的时候,一次是在新对象作为返回值传回的时候,最后一次是在将那个对象拷贝到f3的时候

[解决办法]
f2 是传值 返回值是传值,因为它不是返回自身引用 ,而且不能返回局部量变了,=也会调用的 楼上的 明确 了
[解决办法]
如果参数和返回值都是值传递,实际情况是会调用三次拷贝构造函数,但是有些编译器会对这个过程进行优化,使得调用两次就可以,详情见BS的C++ programming language

热点排行