TECH I.S.

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であり、戻り値はありません。


コンストラクターのパラメーター

コンストラクターは(通常の関数と同様に)、パラメーターを受け取ることもできます。これは、属性の初期値を設定するのに役立ちます。

次のクラスはbrandmodelyear属性と、異なるパラメーターを持つコンストラクターを持っています。コンストラクタの内部では、属性をコンストラクタのパラメータに等しく設定します(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; }



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細