Dalam class, ada 2 bagian yang harus selalu ada
- Constructor Constructor berfungsi membuat objek. Melalui constructor properties object diset dengan nilai tertentu. Jika properties berupa array atau pointer atau reference, melalui constructor, properties tersebut diberi alokasi memory sesuai yang dibutuhkan. Nama constructor selalu sama dengan nama class.
- Destructor Destructor berfungsi menghilangkan(destroy) objek. Jika properties berupa array atau pointer atau reference, melalui constructor, alokasi memory properties tersebut dihapus/dibebaskan. Nama destructor selalu sama dengan nama class namun diawali tanda ?~? Berikut ini contoh pendeklarasian struct yang merepresentasikan object manusia. typedef struct orang { string nama; // properti orang int umur, tinggi, berat; // properti orang }; Keterangan : Setelah didefinisikan, struct orang bisa dianggap seperti tipe data baru, jadi bisa digunakan untuk mendeklarasikan suatu variabel seperti halnya int atau char.
main()
{
// mendeklarasikan variabel tinggiObj dengan tipe integer
int tinggiObj = 180;
// mendeklarasikan variabe man dengan tipe orang
orang man;
/* mengubah nilai elemen tinggi pada struct orang melalui variabel man yang telah dideklarasikan sebelumnya */
man.tinggi = tinggiObj;
}
Sedikit berbeda dengan struct, class dideklarasikan dengan acces modifier tertentu. Agar terlihat perbedaannya, kita ambil contoh yang sama yaitu, merepresentasikan objek yang sama yaitu manusia dan properti yang diubah adalah tinggi badannya.
class orang
{
private : // elemen class private berupa properties object
string nama;
int umur, berat, tinggi;
public : /* elemen class public berupa method untuk mengubah proprties */
orang() // fungsi constructor tanpa parameter
{
nama = sanctuary;
tinggi = 160;
berat = 50;
umur = 17;
};
orang(int setTinggi) /* fungsi constructor dengan parameter untuk mengubah nilai */
{
tinggi = setTinggi;
}
// bisa ditambah fungsi – fungsi tambahan
~orang() // fungsi destructor
{};
};
Dalam class tersebut, properties sudah diset dengan nilai tertentu. Untuk mengubah nilai tinggi tidak bisa secara langsung, dibutuhkan fungsi, constructor misalnya.
main()
{
int tinggiObj = 180;
orang man;
man = orang(tinggiObj); // mengubah nilai tinggi object
}
0 comments:
Post a Comment