Pengertian Class
Class yaitu metode logical untuk organisasi data dan fungsi dalam struktur yang sama. Class dideklarasikan memakai keyword class, yang secara fungsional sama dengan keyword struct, tetapi dengan kemungkinan pernyataan fungsi sebagai anggota, formatnya sebaai berikut :
class class_name {
permission_label_1:
member1;
permission_label_2:
member2;
...
} object_name;
permission_label_1:
member1;
permission_label_2:
member2;
...
} object_name;
Dimana class_name yaitu nama class (user defined type) dan field optional object_name yaitu satu atau beberapa identifier objek yang valid. Body dari deklarasi berisikan members yang sanggup berupa data ataupun deklarasi fungsi dan permission labels (optional), sanggup berupa satu dari tiga keyword berikut : private: , public: atau protected: . Digunakan untuk memilih batasan saluran terhadap members yang ada :
- private = anggota class sanggup diakses dari danggota lain pada kelas yang sama atau dari class "friend".
- protected = anggota sanggup diakses dari anggota class yang sama atau class friend , dan juga dari anggota class turunannya(derived).
- public = anggota sanggup diakses dari class manapun.
Default permission label : private
Contoh :
class CRectangle {
int x, y;
public:
void set_values (int,int);
int area (void);
} rect "
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 yaitu default permission) dan dua fungsi pada belahan public : set_values() dan area(), dimana hanya dideklarasikan propotype_nya.
Perhatikan perbedaan antara nama classdan nama object. Pada pola sebelumnya CRectangle adalah nama class(contoh, user-defined type), dan rect adalah object dari tipe CRectangle. Sama halnya dengan deklarasi berikut :
int a;
int yaitu nama class (type) dan a yaitu 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();
}
#include <iostream.h>
Output :
area: 12
Hal gres dari pola diatas yaitu 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, menunjukkan scope properties yang sama menyerupai jikalau dideklarasikan secara pribadi 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;
}
#include <iostream.h>
Output :
rect area: 12
rectb area: 30
Perhatikan pemanggilan rect.area() tidak menunjukkan hasil ang sama dengan pemanggilan rectb.area(). Ini disebabkan lantaran objek dari class CRectangle memiliki varialbe sendiri, x dan y, dan fungsi set_value() dan area().
Sumber http://now-smart.blogspot.com/