C++クラスのメンバー変数の初期化の概要

1255 ワード

1.通常の変数:
一般的に効率を考慮せずに構造関数に付与することができる.効率を考慮した再構築可能な関数の初期化リストで行う.
class CA 
{ 
public: 
    int data; 
public: 
    CA(); 
}; 
/*********/   
CA::CA():data(0) //……#1……       
{ 
   //data = 0;//……#1……     12
}; 
、static静的変数:
static変数はクラスの所有であり、クラスのオブジェクトではないため、クラスがインスタンス化されたオブジェクトの数にかかわらず、この変数は1つしかありません.この性質では,グローバル変数の一意性に少し似ていることが理解される.
class Test 
{ 
public: 
    static int sum; 
public: 
    Test();  
}; 
int Test::sum=0;    //……#2……        

3、const定数変数:
const定数は宣言時に初期化する必要があります.そのため、変数の作成時に初期化する必要があります.一般的には、コンストラクション関数の初期化リストで行います.
 class Test 
 { 
 public: 
     const int max; 
 public: 
     Test(); 
 }; 
  
 Test::Test():max(100) 
{ 
} 
4、Reference参照型変数:
参照型変数はconst変数と似ています.作成時に初期化する必要があります.初期化リストでも行います.ただし、Referenceタイプを使用することに注意してください.
class Test
{ 
public: 
    int it; 
    int& counter; 
public: 
Test(); 
}; 
 
Test::Test(): counter(&it) 
{ 
} 

まとめると、初期化できる場合は、1、クラスの定義で行われるのはconstかつstaticかつintegralの変数のみである.2.クラスのコンストラクション関数初期化リストには、constオブジェクトとReferenceオブジェクトが含まれます.3、クラスの定義以外に初期化されたもので、static変数を含む.クラスに属する唯一の変数だからです.4、一般的な変数は、コンストラクション関数の内部で、付与方式で行うことができる.もちろん効率は高くありません.