Konstruktor dalam C ++ adalah metode khusus yang dipanggil secara otomatis ketika objek kelas dibuat.
Untuk membuat konstruktor, gunakan nama yang sama dengan kelas, diikuti dengan tanda kurung ()
:
Contoh :
#include <iostream> using namespace std; class MyClass { // The class public: // Akses specifier MyClass() { // Konstruktor cout << "Hello World!"; } }; int main() { MyClass myObj; // Buat objek MyClass (untuk memanggil konstruktor) return 0; }
Output :
Catatan: Konstruktor memiliki nama yang sama dengan kelas, selalu publik dan tidak memiliki nilai yang dikembalikan.
Konstruktor juga dapat mengambil parameter (seperti fungsi biasa), yang dapat berguna untuk menyetel nilai awal atribut.
Kelas berikut memiliki atribut brand
, model
dan year
serta konstruktor dengan parameter berbeda. Di dalam konstruktor, kita akan menetapkan atribut yang sama dengan parameter konstruktor (brand=x
, dll). Saat kita memanggil konstruktor (dengan membuat objek kelas), kita meneruskan parameter ke konstruktor yang akan menetapkan nilai atribut terkait ke sama:
Contoh :
#include <iostream> using namespace std; class Car { // The class public: // Akses specifier string brand; // Atribut string model; // Atribut int year; // Atribut Car(string x, string y, int z) { // Konstruktor dengan parameter brand = x; model = y; year = z; } }; int main() { // Buat objek Car dan panggil konstruktor dengan nilai berbeda Car carObj1("BMW", "X5", 1999); Car carObj2("Ford", "Mustang", 1969); // Cetak Nilai cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n"; cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n"; return 0; }
Output :
Sama seperti fungsi, konstruktor juga dapat didefinisikan di luar kelas. Pertama, deklarasikan konstruktor di dalam kelas lalu tentukan di luar kelas dengan menentukan nama kelas, diikuti oleh scope resolution operator ::
, diikuti dengan nama konstruktor (yang sama dengan kelasnya) :
Contoh :
#include <iostream> using namespace std; class Car { // The class public: // Akses specifier string brand; // Atribut string model; // Atribut int year; // Atribut Car(string x, string y, int z); // Deklarasi konstruktor }; // Definisi Konstruktor di luar class Car::Car(string x, string y, int z) { brand = x; model = y; year = z; } int main() { // Buat objek Car dan panggil konstruktor dengan nilai berbeda Car carObj1("BMW", "X5", 1999); Car carObj2("Ford", "Mustang", 1969); // Cetak Nilai cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n"; cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n"; return 0; }
Output :