c++11就地初始化后不能使用列表初始化的问题

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以上标准进行编译

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章