Senin, 07 Desember 2009

Array & Pointer of Class

Array

Suatu Objek bisa didefinisikan dalam Array.
Misalkan : Mobil merk_mobil[10];
maksudnya adalah kita membuat suatu array yang berisi 10 objek kelas mobil
Berbeda dengan array biasa, array of class tau sizenya sendiri. Selain itu array of class dapat dibandingkan dengan '==' atau '!='

Pointer

Untuk mendefinisikan suatu pointer yang menunjuk ke objek, kita bisa menggunakan suatu pointer of class. Pointer of class berguna sebagai debugging function yang mengakses 2 bytes pertama dari data member tiap objek dan mengambil nilainya.
Misalkan : Mobil *matic;

Seperti pointer yang sudah kita pelajari, tanda '*' diletakkan di depan nama variable pointer. Lalu untuk mendefinisikan pointer 'matic' tersebut untuk menunjuk suatu objek dinamis yang berkelas Mobil, kita bisa menggunakan statement :
matic = new Mobil();
New disini memiliki kegunaan yang sama dengan malloc dalam pendefinisian struct.

Contoh dalam program :

#include "constrea.h"

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;
}


Contoh dalam program, pointer of class sebagai debugging function :

#include "constrea.h"

class Pointer
{
public: int data1, data2;
int value;
int id;
void foo1() {}
void foo2() {}
};

void SetValue(Pointer& object)
{
int Pointer::*ip = &Pointer::value;
object.*ip = 3;
}

void SetId(int *member)
{
*member = 7;
}

void main()
{
int Pointer::*ip1 = &Pointer::data1;
int Pointer::*ip2 = &Pointer::data2;
Pointer obj1;

obj1.*ip1 = 5;
obj1.*ip2 = 10;

SetValue(obj1);

int *pointer1 = &obj1.value;
int *pointer2 = &obj1.id;

SetId(pointer1);
SetId(pointer2);
}

0 komentar:

Posting Komentar