次の方法で共有


特殊なメンバー関数を使用した初期化

このセクションでは、特殊なメンバー関数を使用する初期化について説明します。 初期化の次のトピックで詳述します。

  • 非クラス型の配列および単純なクラス型のオブジェクトを初期化する方法を示す集約の初期化。 これらの単純なクラス型はプライベートまたはプロテクト メンバーを持つことはできず、基底クラスを持つことはできません。

  • コンストラクター」。特殊なコンストラクター関数を使用してクラス型のオブジェクトを初期化する方法を説明しています。

初期化の既定のメソッドは、初期化子から初期化されるオブジェクトへのビットごとのコピーを実行します。 この手法は、次の項目にのみ適用できます。

  • 組み込み型のオブジェクト。 次に例を示します。

    int i = 100;
    
  • ポインター。 次に例を示します。

    int i;
    int *pi = &i;
    
  • 参照。 次に例を示します。

    String sFileName( "FILE.DAT" );
    String &rs = sFileName;
    
  • プライベート メンバーまたはプロテクト メンバー、仮想関数、および基底クラスがないクラス型のオブジェクト。 次に例を示します。

    // spec1_special_member_functions.cpp
    // compile with: /LD
    struct Point
    {
        int x, y;
    };
    
    Point pt = { 10, 20 };   // Static storage class only
    

クラスは、コンストラクター関数を定義することで、より洗練された初期化を指定できます (そのような関数の宣言の詳細については、「コンストラクター」を参照)。 オブジェクトがコンストラクターを持つクラス型である場合、オブジェクトを初期化するか、既定のコンストラクターが必要です。 特に初期化されていないオブジェクトは、そのクラスの既定のコンストラクターを呼び出します。

参照

関連項目

特殊なメンバー関数 (C++)