C 11新標準學習之花括號初始化列表

2021-06-23 06:03:13 字數 369 閱讀 7978

花括號列表初始化,作為c++11新標準的一部被加入到了c++中。

所謂花括號列表初始化,即是用花括號來初始化變數,其形式如: int  test =   ;無論是初始化物件還是為物件賦值 , 在c++11下都可以使用這種形式的初始值。

不同的一點 是:使用這種形式來初始化內建型別的變數時,若存在型別轉換且具有丟失資訊的風險時,編譯器將會報錯。-----------通過這一點可以看出,列表初始化比原有的初始化方式具有更嚴格的安全要求。下面是例子:

long double ld = 3.1415926536;

int a , b =         // 編譯器報錯,存在丟失資訊的風險

int c (ld)  , d = ld ;    //正確

C 11新標準之二 初始化列表

c 11引入了乙個新的初始化方式,稱為初始化列表 list initialize 具體的初始化方式如下 int i int j 1.當初始化內建基本型別的時候,列表初始化不允許出現隱式型別的轉換,例如 long double ld 3.1415926536 int a,b 出錯,不允許出現精度的丟失...

C 11列表初始化 花括號的使用

c 11之前主要有以下幾種初始化方式 小括號初始化 string str hello 等號初始化 string str hello pod物件與pod陣列列表初始化 struct studnet studnet s 純資料 plain of data,pod 型別物件 studnet sarr po...

C 11新標準之五 constexpr

常量表示式必須在編譯期間計算出它的值並且 它的值不可以被改變。在c 11中,我們可以通過宣告constexpr讓編譯器確定乙個變數是不是常量表示式,宣告為constexpr的變數是const型別的變數,它必須由常量表示式來初始化。例如 cpp view plain copy constexpr in...