Jumat, 15 Oktober 2010

ENCAPSULATON C++ ke 2

ENKAPSULASI C++ ke 2
Object constant

>> untuk object yang tidak dapat di-modify
–Jika di-modify akan menyebabkan Compiler error

Contoh object konstant:
const Time noon( 15, 0, 0 );

deklarasi konstanta object noon dari class Time yg di-inisial 15

Member Function constant


Member function utk const objects juga harus dibuat const
Tidak bisa me-modify object
const pada prototype dan definisinya:

int getHari() const; // Prototype

int Time::getHari() const // Definisi
{ return hari; }

Constructor dan Destructor tidak boleh di buat const Karena harus dapat me-modify object
Constructor = utk initialsasi objects
Destructor = utk termination object



Sintaks Initializer Member Class
Initialisasi dg sintaks initializer member dapat digunakan untuk semua const data member.

#include
class Increment
{ public:

Increment (int c = 0, int i = 1 ); // default constructor
void addIncrement ( )
{ count += increment; }

void print ( ) const; // const member function
{ cout << "count = " << count
<< ", increment = " << increment << endl; }
private:
int count;
const int increment; // const data member
};


Nested Object

Sebuah Class dapat berisi object dari class lain = Composite / Nested Object
Member object disusun berurutan
class dg member objects (host objects) berada setelah deklarasi class host object tsb = perlu class prototype
Contoh:

class B; // class prototype
class A
{ public: int i;
}
class B
{ public: int j;
A obj_A; //host object
}
B obj_B; // create object class B
Obj_B.Obj_A.i = 0; // inisialisasi member class A via object B

Pointer this

•Tiap class member function memiliki hidden parameter -> pointer "this“
•"this" menunjuk ke individual object.
•pointer "this" dpt digunakan secara explicit

Static Class Member

static Data Member
“Class-wide” data
-property class tdk specific pada object tertentu
-Seperti global variables, tapi punya class scope
-Hanya accessible ke object dgn class yg sama
-Efisien untuk single copy data
-Dimana hanya static variable yg akan di-update
-Initialized hanya 1 kali pada file scope
-Berlaku walaupun suatu class tidak punya object
-Berlaku independent terhadap objects
-Berlaku utk public, private & protected

Dpt di akses lewat object apapun dari sebuah class
Utk public static variables
Dapat diakses dgn operator binary scope resolution (::)
Employee::count
Utk private static variables
Jika suatu class tdk ada object -> Hanya dapat diakses via public static member function dgn operator binary scope resolution (::)
Employee::getCount()
static member functions Tdk dpt mengakses non-static data / function

Friend Function


•friend function di definisikan di luar dari class’s scope namum memiliki hak akses ke semua members dari class tersebut
•Deklarasi friend funcion dg keyword ‘friend’
•Contoh:

friend void setX( Count &, int );


Operator Overloading

Pemakaian Overloading operator ditujukan untuk mengoperasikan data pada object menjadi mudah
Menggunakan keyword operator

Tidak ada komentar:

Posting Komentar

Followers

http://blokblokann.blogspot.com/. Diberdayakan oleh Blogger.

angel

angel
malaikat kematian

Encapsulation.