C++コンストラクター
コンストラクター
C++のコンストラクターはクラスのオブジェクトが作成されたときに自動的に呼び出される特別なメソッドです。
コンストラクターを作成するには、クラスと同じ名前を使用しその後に括弧()
を付けます。
例
class MyClass { // The class
public: // Access specifier
MyClass() { // Constructor
cout << "Hello World!";
}
};
int main() {
MyClass myObj; // Create an object of MyClass (this will call the constructor)
return 0;
}
注:コンストラクターはクラスと同じ名前で、常にpublic
であり、戻り値はありません。
コンストラクターのパラメーター
コンストラクターは(通常の関数と同様に)、パラメーターを受け取ることもできます。これは、属性の初期値を設定するのに役立ちます。
次のクラスはbrand
、model
、year
属性と、異なるパラメーターを持つコンストラクターを持っています。コンストラクタの内部では、属性をコンストラクタのパラメータに等しく設定します(brand=x など)。コンストラクタを呼び出す(クラスのオブジェクトを作成する)と、コンストラクタにパラメータが渡され、対応する属性の値が同じに設定されます。
例
class Car { // The class
public: // Access specifier
string brand; // Attribute
string model; // Attribute
int year; // Attribute
Car(string x, string y, int z) { // Constructor with parameters
brand = x;
model = y;
year = z;
}
};
int main() {
// Create Car objects and call the constructor with different values
Car carObj1("BMW", "X5", 1999);
Car carObj2("Ford", "Mustang", 1969);
// Print values
cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";
cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";
return 0;
}
関数と同様に、コンストラクタもクラスの外部で定義することができます。まずクラス内部でコンストラクタを宣言し、次にクラス名、スコープ解決::
演算子、コンストラクタ名(クラスと同じ)の順に指定してクラス外部で定義します。
例
class Car { // The class
public: // Access specifier
string brand; // Attribute
string model; // Attribute
int year; // Attribute
Car(string x, string y, int z); // Constructor declaration
};
// Constructor definition outside the class
Car::Car(string x, string y, int z) {
brand = x;
model = y;
year = z;
}
int main() {
// Create Car objects and call the constructor with different values
Car carObj1("BMW", "X5", 1999);
Car carObj2("Ford", "Mustang", 1969);
// Print values
cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";
cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";
return 0;
}
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。