首页 新闻 会员 周边 捐助

c++ , 关于复制构造函数的一个问题?

0
悬赏园豆:10 [待解决问题]


---------------------------------------分界线----------------------------------

为什么没调用 myDate 类的 复制构造函数 ??

c++
春风十里不如你Ni的主页 春风十里不如你Ni | 初学一级 | 园豆:178
提问于:2024-10-20 14:52
< >
分享
所有回答(3)
1

如果你使用的是 C++11 标准编译,根据你提供的信息,编译器为了提高效率,会使用移动构造函数,它的函数声明是myDate::myDate(myDate &&d),你可以重写这个函数看看。

寂静的羽夏 | 园豆:2129 (老鸟四级) | 2024-10-20 15:24
0

因为编译器替你优化了。你理解的过程是,调用这个函数的一方先构造一个 date 对象,然后在调用 date 的拷贝构造把这个对象作为参数复制给函数的 stack frame。但是编译器看到你的代码,他知道可以直接把这个对象创建在函数的栈帧上,所以编译器直接在你需要的“最终目的”上构造这个对象就可以了。

hoodlum1980 | 园豆:573 (小虾三级) | 2024-10-22 20:49
0

是的。为了提高效率,编译器帮助你使用了移动构造函数

Smalldy | 园豆:496 (菜鸟二级) | 2024-11-06 11:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册