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
, model
dan year
atribut, 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;
}