c++11错误代码:
/*==================Reward.h==================*/
struct Reward
{
int m_gold = 0;//就地初始化
int m_hCoin = 0;//就地初始化
int m_credit = 0;//就地初始化
};
/*==================test.cpp==================*/
int main(void)
{
//初始化列表初始化
Reward r{1,2,3};
return 0;
}
通过 `g++ test.cpp -std=c++11`编译直接报错:

经过多次测试,发现c++11以下(含c++11)不支持这种写法
解决办法:
1 不对成员进行初始化
2 编写相应参数的构造函数
3 使用c++11以上标准进行编译

本文探讨了C++11中构造函数的初始化列表及其限制,解释了为什么某些初始化方式在C++11及以下版本中会引发编译错误,并提供了有效的解决方案。
1887

被折叠的 条评论
为什么被折叠?



