struct Employee
{
int age;
double wage;
};
Employee joe;
joe = {2,60.0}; //using initialization list instead of doing Employee joe={2,60.0}
我在 Visual Studio 2015 中遇到编译错误,但能够使用 C++ 版本 C++11 在代码块中执行
最佳答案
它应该可以工作。
复制列表初始化
以下是有效的,称为 copy-list-initialization :
joe = {2,60.0};
它实际上是右侧正在初始化的临时文件。看看this answer .
如所提供示例的注释中所述,以下是初始化。更具体地说,它也是copy-list-initialization . (它曾经是 copy initialization 直到 c++11,但现在从 c++11 开始就接受了大括号):
Employee joe={2,60.0}
复制作业
或者您可以使用 copy assignment :
joe = Employee{2,60.0};
聚合初始化
你可以使用 aggregate initialization定义变量时:
Employee joe{2,60.0};
关于c++ - 为什么我不能像这样初始化结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36758275/