打印

构造函数问题

[复制链接]
1098|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
txcy|  楼主 | 2014-2-28 19:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<iostream>
using namespace std;
class A
{
public:
        A(){};
        A(const A &a)
        {
                cout<<"copy"<<endl;
                data=a.data;
        }
        int data;
};
A func()
{
        A a;
        a.data=3;
        return a;
}
int main()
{
        A a=func();
        cout<<a.data<<endl;
        return 0;
}
这段代码在vs2012和g++编译的结果不一样,这是为什么呢?
g++为什么没调用我自己写的copy constructor?

相关帖子

沙发
秋天落叶| | 2014-2-28 19:17 | 只看该作者
A a=func();
这里有个返回值优化。

使用特权

评论回复
板凳
pkat| | 2014-2-28 19:22 | 只看该作者
应该是编译器做了优化。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

274

主题

2106

帖子

0

粉丝