C++クラスconstメンバー変数の初期化
437 ワード
class CExample
{
public:
CExample():m_a(1),m_b(2){/*m_a = 1; compile error*/}
CExample(const CExample&c):m_a(1){/*m_a = 1; compile error*/}
~CExample(){}
private:
const int m_a;
int m_b;
};
まとめ:
1、クラスのconstメンバー変数は、コンストラクション関数のパラメータ初期化リストで初期化する必要があります.
2、コンストラクション関数の内部では、constメンバーに値を割り当てることはできません.コンパイラは直接エラーを報告します.
3、コンストラクション関数リストの初期化の実行順序はメンバー変数がクラスで宣言したのと同じで、初期化リストの文の作成前後とは関係ありません.