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以上標準進行編譯

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