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;
}