在C++ 11中初始化一個常量數據成員,例如類型爲int的常量數據成員時,執行以下四種不同的語法是否會做同樣的事情?如果不是,有什麼區別?C++中的語義差異,定義一個常量數據實例
{
const int a = 5; //usual initialization, "=" is not assignment operator here it is an initialization operator.
}
{
const int a(5); //calling the constructor function directly
}
{
const int a = {5}; //similar to initializing an array
}
{
const int a{5}; //it should work, but visual studio does not recognizing it
}
爲什麼第四個不被Visual Studio識別爲有效語句?
沒關係,我使用的Visual Studio 2012和正在以下錯誤: '1錯誤C2734: 'A':const對象必須如果不是的extern初始化':一個 ' 「2-錯誤C2601':局部函數定義是非法的' '3 - 這一行包含一個'{'尚未匹配' – 2015-02-06 06:16:08