首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 入門

C++ 回顧:類數據成員初始化與構造函數初始化列表

     編輯:C++ 入門

構造函數兩個階段

  1. 初始化階段:在初始化列表中進行,數據成員在此被構造。
  2. 普通計算階段:進入函數體後,對數據成員的賦值操作。

初始化列表效率更高,避免默認構造後再賦值。

初始化列表語法

Clock::Clock(int h, int m, int s) : hour_(h), minute_(m), second_(s) {
    // 函數體為普通計算階段
}

必須在初始化列表中初始化的成員

  1. 類對象成員,且該類無默認構造函數。
  2. const 成員:只能初始化,不能賦值。
  3. 引用成員:必須綁定初始化,不能重新綁定。

初始化順序

與初始化列表中書寫順序無關,按類中聲明順序初始化。析構順序相反。

const 成員與枚舉常量

const 成員每個對象可有不同值。若需所有對象共享常量,應用 enum 或 static const。

代碼示例

class Object {
    int num_;
    const int kNum_;
    int& refNum_;
public:
    Object(int n) : num_(n), kNum_(n), refNum_(num_) {}
    enum { TYPE_A = 100, TYPE_B }; // 所有對象共享
};
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved