C++ の構造体コンストラクター
この小さなチュートリアルでは、struct
の使用と、C++ を使用したコンストラクターの追加について説明します。
C++ での struct
の紹介
struct
は Structure の略で、いくつかのプリミティブ型変数を組み合わせたユーザー定義のデータ型です。 これらの変数が混合されて、新しいユニットが形成されます。
ユーザー定義の名前もあります。 struct
を宣言する構文は次のとおりです。
struct structName {
data - type var_1;
data - type var_2;
........date - type var_N
};
上記の構文は、struct
にユーザー定義の名前と変数のセットがあることを示しています。 これらの変数は、プリミティブ データ型の場合もあれば、他のユーザー定義の class
または struct
変数の場合もあります。
struct
は、すべてまたは任意のデータ メンバー、メンバー関数、コンストラクタ、デストラクタ、演算子、イベント、およびネストされたデータ型を持つことができます。 struct
が宣言された後、次のように new
キーワードの有無にかかわらず、そのオブジェクトを作成できます。
structName objectName = new structName();
OR structName objectName;
違いは、オブジェクトを new
で初期化すると、デフォルトのコンストラクターが呼び出され、すべてのデータ メンバーに何らかの値が割り当てられ、new
を使用しない場合、データ メンバーは割り当てられないままになることです。
C++ の struct コンストラクター
コンストラクターは、new
キーワードを使用してオブジェクトが作成されるときに暗黙的に呼び出されるメンバー関数です。 これらのメンバー関数は、値を struct
のデータ メンバーに初期化するために使用されます。
さらに、struct
にデフォルトのコンストラクターとパラメーター化されたコンストラクターを含めることができます。 コンストラクターを宣言する構文は次のとおりです。
struct structName {
datatype var1;
structName() { var1 = [some - value]; }
};
上記の疑似コードは、デフォルト コンストラクター を宣言するための構文を示しています。 実際のコードを次の例に示します。
struct Square {
float sides;
Square() { sides = 0; }
Square(int s) { sides = s; }
};
上記のコードでは、2つのコンストラクターを宣言しました。1つはデフォルトで、もう 1つはパラメーター化されています。 struct
のオブジェクトを作成するには:
int main() {
Square s1 = new Square(); // default constructor called
Square s2 = new Square(5); // parameterized constructor called
Square s3; // No constructor called
}