Selasa, 01 Desember 2009

Array & Pointer of Class

Array pada C++ tidak terdapat range checking sehingga apabila kita compile, tidak akan ada error/warning sama sekali, tetapi ketika kita melakukan pengisian lebih dari array yang telah disediakan, maka akan terjadi error. Dan juga dalam penggunaannya, kita tidak dapat mengbandingkan yang 1 dengan yang lainnya (kecuali menggunakan function yang telah ada atau membandingkan isi array 1 demi 1) dan juga kita tidak dapat mengisi array secara langsung semuanya (harus mengisi 1 demi 1).
Sedangkan apabila kita mengimplemantasikan Array pada Class, maka akan dilakukan range checking terlebih dahulu. Jadi apabila terdapat isi array yang lebih, pada waktu dicompile akan terjadi warning/error. Dengan penggunaan Array pada Class, maka array dapat langsung dibandingkan dengan yang lainnya.
Pada implementasi Array pada class, juga dapat digunakan copy constructor agar dapat mengcopy object yang dibutuhkan.
Implementasi Pointer pada Class, apabila kita menggunakan Array, maka tempat yang disediakan akan terbatas sesuai dengan yang sudah kita alokasikan, tetapi apabila kita menggunakan pointer, kita dapat menggunakan sesuai kebutuhan kita. Alokasi memory pada array adalah static (sesuai dengan yang dialokasikan pada awal, apabila kurang, kita harus mengalokasikan lebih pada awalnya), sedangkan pada pointer alokasinya adalah dynamic (di mana alokasi memory sesuai dengan yang kita butuhkan).

Contoh implementasi pointer pada Class:
#include
class First
{ public:
int value;
First() {value = 0;}
int GetValue() {return value;}
};

class Second
{ int id;
public:
First *obj1;
Second() {id = 0;}
int GetName(){ return id;}
};

int main()
{ Second Obj2;
int num;
num = Obj2.GetName();
return 0;
}

Tidak ada komentar:

Posting Komentar