Di C++, constructor dan destructor adalah bagian penting dari kelas untuk mengelola inisialisasi dan penghancuran objek. Berikut adalah penjelasan dan contohnya:
1. Constructor
Constructor adalah fungsi anggota khusus dalam kelas yang dipanggil secara otomatis saat sebuah objek dibuat. Biasanya digunakan untuk menginisialisasi atribut kelas.
Ciri-Ciri Constructor:
- Nama constructor sama dengan nama kelas.
- Tidak memiliki tipe kembalian (return type), bahkan
void
. - Bisa memiliki parameter (constructor berparameter).
- Mendukung overloading (beberapa constructor dengan parameter berbeda).
Contoh Constructor:
#include <iostream>
using namespace std;
class Mobil {
public:
string merk;
string warna;
int tahun;
// Constructor tanpa parameter
Mobil() {
merk = "Tidak diketahui";
warna = "Tidak diketahui";
tahun = 0;
}
// Constructor dengan parameter
Mobil(string m, string w, int t) {
merk = m;
warna = w;
tahun = t;
}
void tampilkanInfo() {
cout << "Merk: " << merk << ", Warna: " << warna << ", Tahun: " << tahun << endl;
}
};
int main() {
Mobil mobil1; // Memanggil constructor tanpa parameter
Mobil mobil2("Toyota", "Merah", 2020); // Memanggil constructor dengan parameter
mobil1.tampilkanInfo();
mobil2.tampilkanInfo();
return 0;
}
Output:
Merk: Tidak diketahui, Warna: Tidak diketahui, Tahun: 0
Merk: Toyota, Warna: Merah, Tahun: 2020
2. Destructor
Destructor adalah fungsi anggota khusus yang dipanggil secara otomatis saat sebuah objek dihancurkan (misalnya, saat keluar dari scope atau program selesai). Biasanya digunakan untuk membersihkan memori atau resource yang dialokasikan.
Ciri-Ciri Destructor:
- Nama destructor sama dengan nama kelas, tetapi diawali dengan tanda tilde (
~
). - Tidak memiliki parameter atau tipe kembalian.
- Tidak bisa dioverload (hanya satu destructor per kelas).
Contoh Destructor:
#include <iostream>
using namespace std;
class Mobil {
public:
string merk;
// Constructor
Mobil(string m) {
merk = m;
cout << "Constructor dipanggil untuk: " << merk << endl;
}
// Destructor
~Mobil() {
cout << "Destructor dipanggil untuk: " << merk << endl;
}
};
int main() {
Mobil mobil1("Toyota");
Mobil mobil2("Honda");
return 0;
}
Output:
Constructor dipanggil untuk: Toyota
Constructor dipanggil untuk: Honda
Destructor dipanggil untuk: Honda
Destructor dipanggil untuk: Toyota
Poin Penting Tentang Constructor dan Destructor
- Constructor:
- Berguna untuk menginisialisasi nilai atribut atau menyiapkan resource yang dibutuhkan.
- Bisa overload untuk mendukung berbagai cara inisialisasi objek.
- Destructor:
- Membersihkan resource, seperti menghapus alokasi memori dinamis.
- Secara default, C++ menyediakan destructor jika Anda tidak mendefinisikannya.
Jika Anda ingin melihat contoh dengan penggunaan alokasi memori dinamis atau aplikasi lebih kompleks, beri tahu saya! 😊
Leave a Reply