天天看點

C++11 初始化

C++11 初始化

統一初始化文法

        C++11新添加初始化清單 std::initializer_list<>類型,可以通過{}文法來構造初始化清單 。初始化清單是常數;一旦被建立,其成員均不能被改變,成員中的資料也不能夠被變動。函數能夠使用初始化清單作為參數。

        在引入C++ 11之前,有各種不同的初始化文法。在C++ 11中,仍可以使用這些初始化文法,但也可以選擇使用新引入的統一的初始化文法。統一的初始化文法用一對大括号{}表示。

        std::vector<string> v1 = {"hello", "world", "welcome"};

        std::vector<int> v2 = {0, 3, 8, 1, 4};

// 注: vs2012 不支援統一初始化方式{}

類内成員初始化

清單初始化

C++11引入了一個新的初始化方式,稱為初始化清單(List Initialize),具體的初始化方式如下:

防止類型收窄

類型收窄指的是導緻資料内容發生變化或者精度丢失的隐式類型轉換。使用清單初始化可以防止類型收窄。