第三篇:C++ 中的幾種初始化

穆晨發表於2017-01-19

前言

       閱讀C++教材時,想必你聽過複製初始化,直接初始化,值初始化這三個概念吧。筆者本人常將其混淆,遂在此記錄下它們的具體含義以便日後查閱。

複製初始化( copy-initialization )

       複製初始化使用 = 對變數進行初始化。

直接初始化( direct-initialization )

       直接初始化用把初始化式子放到括號中的方式對變數進行初始化。

值初始化( value-initialization )

       值初始化和上面兩種初始C++中的幾種初始化化是不同的概念上兩種初始化說明的是“ 用什麼樣的語法格式來初始化變數 ",而值初始化不但要說明“ 用什麼樣的語法格式來初始化變數 "( C++中用new開闢的空間通過在要初始化的空間的型別名後跟()來啟用值初始化,而庫型別則自動對未初始化的變數啟用值初始化 ),而且還要說明是" 用什麼值來初始化變數 "。

       1. 當變數為內建型別,值初始化用0來對其初始化。

       2. 當變數為類型別,值初始化用該類的預設建構函式初始化。

       3. 當變數為類型別且沒有預設建構函式時,值初始化要求程式設計師提供初始化值。

說明

       值初始化通常用在初始化一段連續的記憶體區( 如vector容器,new一段空間 )。

相關文章