#include<iostream>
using namespace std;
class C{
private:
int value;
public:
C(){
value = 0;
cout<<"default constructor"<<endl;
}
C(const C& c){
value = c.value;
cout<<"copy constructor"<<endl;
}
};
int main(){
C c1;
C c2 = C();
}输出
默认构造函数
默认构造函数
问题:
对于C c1;默认构造函数显然将被调用,对于C c2 = C();,我认为默认构造函数将被调用来初始化一个临时对象,然后复制构造函数将被调用来初始化c2,似乎我错了。为什么?
发布于 2016-07-02 17:37:03
这是一个复制省略的例子--基本上允许编译器优化复制。在这里描述:elision
https://stackoverflow.com/questions/35861561
复制相似问题