C++: 類成員初始化列表語法


 
  • 類的成員初始化列表的初始化的基本語法,類的構造函數還可以運用此語法為其變量初始化;
    class Class
    {
    private:
       int a;
       int b;
       char ch; 
    public:
       Class(int a, int b, char ch);             
    };
    
    Class::Class(int a, int b, char ch) : a(1), b(0), char(A)  // a(1), b(0), char(A) 為Class類為其初始化數據。
    {
        //插入代碼
    }

     

  • 警告:不能將成員初始化列表語法用於除構造函數之外的其他 “類” 方法。

 

  • 從概念上說:這些初始化工作是在對象創建時完成的,此時還未執行括號內的任何代碼;

 

  • 使用時請注意以下幾點:
  1. 這種格式只能用於構造函數;
  2. 必須用這種格式來初始化非靜態 const 數據成員(在C++11 標准之前);

在C++11 標准之中可以使用跟直觀的初始化方式;

class Class
{
private:
   int a = 0;
   const int b = 10;
    ......
} //可以在聲明是直接進行初始化數據

這種初始化與前面的初始化等價;

  1. 必須用這種格式初始化引用數據成員;

 

  • 數據成員被初始化的順序與他們出現在類聲明中的順序相同,與初始化器中的排列順序無關。

 

  • 如果你願意也可以為普通變量使用初始化列表初始化

int a = 10;  等價於 int a(0);

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM