Classes Pada C++

wisman_portnoy
Comments Off

Class adalah metode logical untuk organisasi data dan fungsi dalam struktur yang sama. Class dideklarasikan menggunakan keyword class, yang secara fungsional sama dengan keyword struct, tetapi dengan kemungkinan penyertaan fungsi sebagai anggota, formatnya sbb :

class class_name {

permission_label_1:

member1;

permission_label_2:

member2;

} object_name;

Dimana class_name adalah nama class(user defined type) dan field optional object_name adalah  satu  atau  beberapa  identifier  objek  yang  valid.  Body dari                                  deklarasi  berisikan members, yang dapat berupa data ataupun deklarasi fungsi, dan permission labels (optional), dapat berupa satu dari tiga keyword berikut : private:, public: atau protected:. Digunakan untuk menentukan batasan akses terhadap members yang ada :

•      private , anggota class dapat diakses dari danggota lain pada kelas yang sama atau dari class “friend”.

•       protected , anggota dapat diakses dari anggota class yang sama atau class friend , dan juga dari anggota class turunannya(derived).

•      public , anggota dapat diakses dari class manapun. Default permission label            : private

Contoh :

class CRectangle {

int x, y;

public:

void set_values (int,int);

int area (void);

} rect;

Deklarasi class  CRectangle dan object bernama  rect. Class ini berisi empat anggota: dua  variable  bertipe  int (x and  y)  pada  bagian  private (karena  private  adalah  default permission) dan  dua  fungsi pada  bagian  public :  set_values() dan  area(),  dimana  hanya dideklarasikan propotype_nya.

Perhatikan perbedaan antara nama classdan nama object. Pada contoh sebelumnya

CRectangle adalah nama class(contoh, user-defined type), dan rect adalah object dari tipe

CRectangle. Sama halnya dengan deklarasi berikut       :

int a;

int adalah nama class (type) dan a adalah nama object(variable).

Contoh :

// classes example

#include <iostream.h>

class CRectangle {

int x, y;

public:

void set_values (int,int);

int area (void) {return (x*y);}

};

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

x = a;

y = b;

}

int main () { CRectangle rect; rect.set_values (3,4);

cout << “area: ” << rect.area();

}

Output :

area: 12

Hal baru dari contoh diatas adalah operator :: dari lingkup yang disertakan dalam pendefinisian set_values(). Digunakan untuk mendeklarasikan anggota dari class diluar class tersebut.

Scope  operator  (::)  menspesifikasikan  class  dimana  anggota  yang  dideklarasikan

berada, memberikan scope properties yang sama seperti jika dideklarasikan secara langsung dalam class.

Contoh :

// class example

#include <iostream.h>

class CRectangle {

int x, y;

public:

void set_values (int,int);

int area (void) {return (x*y);}

};

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

x = a;

y = b;

}

int main () {

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

cout << “rect area: ” << rect.area() << endl;

cout << “rectb area: ” << rectb.area() << endl;

}

Output :

rect area: 12 rectb area: 30

Perhatikan pemanggilan rect.area() tidak memberikan hasil yang sama dengan pemanggilan rectb.area(). Ini disebabkan karena objek dari class CRectangle mempunyai variable sendiri, x dan y,  dan fungsi set_value() dan area().