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
Jumat, 15 Oktober 2010
Langganan:
Posting Komentar (Atom)
Followers
http://blokblokann.blogspot.com/. Diberdayakan oleh Blogger.
Tidak ada komentar:
Posting Komentar