C++ステップ-初期化リスト

1665 ワード

この間、先生が授業中に講義したLinuxプログラム設計コードを研究していたところ、先生が提供したライブラリ関数に初期化リストが出てきて、以前勉強していたC++カリキュラムの知識を忘れてしまったので、C++初期化リストを再学習することにしました.
C++初期化リストは、メンバー変数を初期化するために使用されます.
使用1:基本データ型メンバー変数の初期化は、構造関数に配置してもよいし、初期化リストを使用して初期化してもよい.次のようになります.
class CLPerson
{
public:
        CLPerson(int i):height(i)
        {}
private:
        int height;
};

または、
class CLPerson
{
public:
        CLPerson(int i)
        {
                  height=i;
        }
private:
        int height;
};

2:
constメンバー の には、 リストを する があります.
class CLPerson
{
public:
        CLPerson(int i):cHeight(height)
        {
                  height=i;
        }
public:
          int &cHeight;
private:
        int height;
};

のコードでは、クラス はcHeightでheightにアクセスできます(getメソッドを するのと じです)が、クラス ではheightを することはできません. を することで、データのカプセル が し、クラス でプライベートデータメンバーにアクセスしやすくなります.
3:クラスのメンバー が のクラスのオブジェクトである 、 リストを して する があります.【クラスのメンバーオブジェクトは する がありますが、メンバーオブジェクトを コンストラクション で することはできません】
class CLMan
{
public:
       CLMan(string na,int ag)
       {
                 name = na ;
                 age = ag ;
       }
private:
       string name;
       int age ;
}
class CLPerson
{
public:
        CLPerson(int i):man(Smith,21),cHeight(height)
        {
                  height=i;
        }
public:
          int &cHeight;
private:
        CLMan man;
        int height;
};

また、オブジェクトメンバーの には、 するコンストラクション が であり、 のオブジェクトメンバーのコンストラクション は、メンバーリストの ではなく、 の で われます.