Jumat, 25 September 2009


# Constructor

Constructor adalah dimana fungsi yang otomatis di eksekusi saat suatu objek dibuat itu sendiri, destructor sebaliknya

// example on constructors and destructors

#include

class CRectangle {

int *width, *height;

public:

CRectangle (int,int);

~CRectangle ();

int area (void) {return (*width * *height);}

};

CRectangle::CRectangle (int a, int b) {

width = new int;

height = new int;

*width = a;

*height = b;

}

CRectangle::~CRectangle () {

delete width;

delete height;

}

int main () {

CRectangle rect (3,4), rectb (5,6);

cout << "rect area: " <<>

cout << "rectb area: " <<>

return 0;

}

Keterangan :

Program diatas menggunakan constructor untuk memberi nilai variable height dan width.

Constructornya adalah sbb:

CRectangle::CRectangle (int a, int b) {

width = new int;

height = new int;

*width = a;

*height = b;

}

Karena nantinya space memori yang ditempati height dan width akan dibebaskan setelah selesai maka keduanya dideklarasikan sebagai dynamic variable (pointer). Hanya dynamic variable yang dapat dihilangkan dari memori. Pembebasan memori menggunakan destructor sbb :

CRectangle::~CRectangle () {

delete width;

delete height;

}

Outputnya


#overriding

overriding adalah pembuatan fungsi ( method ) dengan nama yang sama namun dengan signature yang berbeda. contoh fungsi tambah. Kita bisa bikni dua atau lebih fungsi tambah dengan parameter yang berbeda misalnya int tambah( int a, int b ) dan float tambah( float a, float b ) ntar fungsi yang dieksekusi sesuai dengan argument yang dimasukan.

// overloading class constructors

#include

class CRectangle {

int width, height;

public:

CRectangle ();

CRectangle (int,int);

int area (void) {return (width*height);}

};

CRectangle::CRectangle () {

width = 5;

height = 5;

}

CRectangle::CRectangle (int a, int b) {

width = a;

height = b;

}

int main () {

CRectangle rect (3,4);

CRectangle rectb;

cout << "rect area: " <<>

cout << "rectb area: " <<>

}

Keterangan :

Pada contoh 3.3. diatas digunakan dua constructor yakni :

  1. default konstructor

CRectangle::CRectangle () {

width = 5;

height = 5;

}

  1. copy constructor

CRectangle::CRectangle (int a, int b) {

width = a;

height = b;

}

Outputnya

0 komentar: