Konstruktor C++


Konstruktor

Konstruktor dalam C++ adalah metode khusus yang secara otomatis dipanggil ketika objek kelas dibuat.

Untuk membuat konstruktor, gunakan nama yang sama dengan kelas, diikuti dengan tanda kurung ():

Contoh

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

Catatan: Konstruktor memiliki nama yang sama dengan kelas, selalu public, dan tidak memiliki nilai kembalian.


Parameter Konstruktor

Konstruktor juga dapat mengambil parameter (seperti fungsi biasa), yang dapat berguna untuk menetapkan nilai awal untuk atribut.

Kelas berikut memiliki brand, modeldan yearatribut, dan konstruktor dengan parameter yang berbeda. Di dalam konstruktor kami mengatur atribut sama dengan parameter konstruktor ( brand=x, dll). Saat kita memanggil konstruktor (dengan membuat objek kelas), kita meneruskan parameter ke konstruktor, yang akan mengatur nilai atribut yang sesuai menjadi sama:

Contoh

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

Sama seperti fungsi, konstruktor juga dapat didefinisikan di luar kelas. Pertama, deklarasikan konstruktor di dalam kelas, lalu definisikan di luar kelas dengan menentukan nama kelas, diikuti dengan :: operator resolusi lingkup, diikuti dengan nama konstruktor (yang sama dengan kelas):

Contoh

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