C++——建構函式之初始化列表
1、建構函式體賦值
建構函式體中的語句只能將其作稱為賦初值,而不能稱為初始化,因為初始化只能初始化一次,而建構函式體內可以多次賦值
2、初始化列表
初始化列表是成員變數初始化的地方,初始化列表以一個冒號開始,以逗號分隔的資料成員列表,每個“成員變數”後面跟一個放在括號中的初始值或表示式
注意:
- 每個成員變數在初始化列表中只能出現一次(初始化只能初始化一次)
- 類中包含以下成員,必須放在初始化列表位置進行初始化【引用成員變數、const成員變數、自定義型別成員(該類沒有預設建構函式)】
- 成員變數在類中宣告次序就是其在初始化列表中的初始化順序,與其在初始化列表中的先後次序無關
舉例:
變數的宣告次序為_a2,_a1,所以初始化順序為_a2(_a1),_a1(a),由於未初始化的_a1 是隨機值,所以_a2是隨機值
3、explicit關鍵字
建構函式不進可以構造和初始化物件,對於單個引數的建構函式還有型別轉換的作用
用explicit修飾建構函式,將會禁止單參建構函式的隱式型別轉換
相關文章
- 【C++】初始化列表建構函式VS普通建構函式C++函式
- C++ 類建構函式初始化列表介紹C++函式
- c++中使用建構函式初始化列表的情況C++函式
- C++ 建構函式 explicit 關鍵字 成員初始化列表C++函式
- C++ 建構函式和解構函式C++函式
- C++入門記-建構函式和解構函式C++函式
- C++複製建構函式C++函式
- C++中建構函式,拷貝建構函式和賦值函式的詳解C++函式賦值
- 深入分析C++物件模型之移動建構函式C++物件模型函式
- C++拷貝建構函式詳解C++函式
- C++型別轉換建構函式C++型別函式
- c++ 的學習 建構函式1C++函式
- 預設建構函式、引數化建構函式、複製建構函式、解構函式函式
- C++建構函式和解構函式呼叫虛擬函式時使用靜態聯編C++函式
- 建構函式之間的呼叫函式
- 迴圈單連結串列建構函式、解構函式C++實現函式C++
- C++:建構函式的分類和呼叫C++函式
- 深度解讀《深度探索C++物件模型》之預設建構函式C++物件模型函式
- 深度解讀《深度探索C++物件模型》之複製建構函式C++物件模型函式
- 建構函式與解構函式函式
- ## 建構函式函式
- C# 建構函式 (初始化成員變數的角色)C#函式變數
- C++ 移動構造和複製建構函式匹配C++函式
- C++學習筆記-----類和建構函式C++筆記函式
- 類的建構函式和解構函式函式
- C++ vector 列表初始化C++
- c++內建函式物件C++函式物件
- c++中內建函式C++函式
- C++之類解構函式為什麼是虛擬函式C++函式
- C++解構函式C++函式
- javascript中初始化建構函式時new所起的作用JavaScript函式
- Java static變數、作用域、建構函式初始化順序Java變數函式
- JavaScript 建構函式JavaScript函式
- c/c++ 拷貝控制 建構函式的問題C++函式
- C++之memset函式C++函式
- PHP筆記:建構函式與解構函式PHP筆記函式
- 類的陣列初始化後會呼叫拷貝建構函式陣列函式
- dart系列之:dart類中的建構函式Dart函式