“我们可以initializate为此我们没有使用定义 任何构造函数的类的对象。拷贝构造函数的花括号初始化
- 按成员初始化
- 拷贝初始化
- 默认初始化。
例如:
struct Work { string author; string name; int year; }; Work s9 { "Bethoven", "Symphony No. 9 in D minor, Op. 125; Choral", 1824 }; // memberwise initialization Work currently_playing {s9}; // copy initialization Work none {}; // default initialization
The C++ Programming Language 4th Ed。章17.3.1
例如:
struct Data
{
int mMember1;
float mMember2;
char mMember3;
};
int main()
{
Data aData_1{1,0.3,33};
Data aData_2{aData_1};
return EXIT_SUCCESS;
}
这必须工作,althought我得到一个编译错误尽可能多的与海湾合作委员会与锵。这两个编译器中的错误是“无法将数据转换为整数”。但是,实现复制构造函数这个错误消失或不实现它,但使用圆括号语法。问题是有点愚蠢,改变圆括号的问题得到解决。但为什么不遵循TC++ PL的规则?是一个汇编问题还是我误解了某些东西?提前致谢。
这是由一个DR修复到C++ 14,[请参阅此处](http://stackoverflow.com/questions/31776359/explicit-copy-constructor-and-uniform-initialization/31776937) –