深度解读C++对象模型:返回值优化的原理与实现
时间:2024-04-19 11:48:16来源:Lwgzc手游网作者:佚名我要评论 用手机看
扫描二维码随身看资讯
使用手机 二维码应用 扫描右侧二维码,您可以
1. 在手机上细细品读~
2. 分享给您的微信好友或朋友圈~
接下来,我将继续更新“深度解读《深度探索C++对象模型》”系列文章。欢迎关注公众号:iShare爱分享,自动获得推文和全部的文章列表。
当在函数的内部中返回一个局部的类对象时,是如何返回对象的值的呢?让我们看下面的代码片段:
class Object {}
Object foo() {
Object b;
// ...
return b;
}
Object a = foo();
对于上面的代码,是否一定会从foo函数中拷贝对象到对象a中?如果Object类中定义了拷贝构造函数的话,拷贝构造函数是否一定会被调用?答案是要看Object类的定义和编译器的实现策略有关。我们细化一下代码来进一步分析具体的表现行为,请看下面的代码:
#include <cstdio>
class Object {
public:
Object() {
printf("Default constructor\n");
a = b = c = d = 0;
}
int a;
int b;
int c;
int d;
};
Object foo() {
Object p;
p.a = 1;
p.b = 2;
p.c = 3;
p.d = 4;
return p;
}
int main() {
Object obj = foo();
printf("%d, %d, %d, %d\n", obj.a, obj.b, obj.c, obj.d);
return 0;
}
热门手游下载
热门文章
热门手游推荐
换一批
- 1
加查之花 正版
- 2
爪女孩 最新版
- 3
企鹅岛 官方正版中文版
- 4
捕鱼大世界 无限金币版
- 5
球球英雄 手游
- 6
内蒙打大a真人版
- 7
烦人的村民 手机版
- 8
跳跃之王手游
- 9
蛋仔派对 国服版本
- 10
情商天花板 2024最新版