Constructor & Destructor

Constructor dan destructor adalah function di dalam class yang memiliki nama yang sama dengan class tersebut. Constructor dan destructor harus public, dan tidak seperti function-function lainnya, akan dijalankan secara otomatis saat suatu object dibuat atau dihancurkan.

class TesClass {
public:
int
number;
char letter;

TesClass () {
number = 1;
letter = 'A';
cout<<"Object created.\n";
}

~TesClass () {
cout<<"Object destroyed.\n";
}
};

Pada class tersebut, terdapat function TesClass dan ~TesClass. Function TesClass merupakan constructor dari class TesClass, sementara destructornya adalah function ~TesClass. Berikut ini contoh constructor dan destructor untuk class TesClass dalam program.

void TesConstructorDestructor () {
TesClass tes1, tes2;
}

int main () {
TesClass *tes3;

TesConstructorDestructor();

tes3 = new TesClass;
delete tes3;

getchar();
return 0;
}

Jika program tersebut dijalankan, layar akan menampilkan seperti ini.

Object created.
Object created.
Object destroyed.
Object destroyed.
Object created.
Object destroyed. 

Saat program tersebut dijalankan, yang dijalankan adalah function main. Pada function main, saat object tes3 dideklarasikan, object tersebut hanya sebagai pointer yang tidak menunjuk ke alamat memory mana pun. Karena itu, saat deklarasi pointer object tes3, constructor tidak dijalankan.

Kemudian program menjalankan function TesConstructorDestructor. Pada saat function TesConstructorDestructor dijalankan, function tersebut membuat dua buah object, yaitu tes1 dan tes2. Saat masing-masing object tersebut dibuat, constructor dijalankan sehingga program akan menampilkan tulisan “Object created.” sebanyak dua kali. Kemudian function tersebut selesai bekerja dan object-object yang terdapat di dalamnya akan dihancurkan. Karena itu, program menampilkan tulisan “Object destroyed.” sebanyak dua kali karena terdapat dua object di dalam function tersebut.

Setelah itu, function main memberikan alokasi alamat memory untuk pointer object tes3 sehingga tes3 menjadi sebuah object. Saat ini, program akan menjalankan constructor dari class TesClass. Kemudian object tes3 dihancurkan dan destructornya dijalankan.

2 thoughts on “Constructor & Destructor

  1. Pingback: C++ Function Overloading « Twisted Pair

  2. Pingback: Fenomena Supranatural, Glitch IRL? | Twisted Pair

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s