Pemrograman Berorientasi Objek

Posted by pinky | 8:21 PM | 0 comments »

OPERATOR OVERLOADING

Operator Overloading memungkinkan kita untuk menuliskan fungsi yang mendefinisikan kembali suatu operator standar sehingga operator tersebut memiliki fungsi dan kegunaan yang sama (atau dapat berbeda) seperti operator standar yang beroperasi dengan tipe data dasar apabila operand – operand dari operator tersebut merupakan objek – objek dari suatu kelas tertentu. Misalkan kita memiliki class CKotak dan kita ingin membuat operator overloading untuk operator aritmatika > (lebih besar dari) maka di dalam definisi class harus ditulis:
class CKotak
{
Public:

Bool operator> (CKotak& kotak) const;

}
Kata operator merupakan kata kunci, sedangkan operator ‘>’ yang ditulis langsung setelah kata kunci mendefinisikan kegunaan dan fungsi dari operator tersebut. Dengan operator fungsi operator>( ), operand yang berada di sebelah kanan operator overloading akan didefinisikan di dalam tanda kurung sebagai argument. Fungsi operator itu didefinisikan sebagai const karena tidak ada modifikasi data anggota class.
Operator yang dapat digunakan dalam penulisan nama fungsi adalah +, -, *, /, %, + =, - =, * =, ^, <, >, = =, ! =, < <, > >, ~, ! dan operator yang tidak dapat digunakan adalah . , .*, ::, ?:
Default Argument
Default argument adalah nilai default pada beberapa argument dari anggota fungsi ketika argument tersebut tidak diberikan nilai.


FRIEND

Fungsi friend fungsi bukan anggota class yang dapat mengakses anggota class, fungsi seperti ini dapat digunakan untuk mengakses data anggota class yang bersifat private atau protected. Berikut ini adalah contoh implementasi friend di dalam suatu kelas CKotak

class CKotak
{
private:

public:

Friend double PanjangTotal ( CKotak Kotak);
};

Class Friend
Sesungguhnya suatu class dapat dijadikan frind bagi class lain. Class friend ini diperlukan bila terdapat 2 class atau lebih, dan diperlukan untuk mengakses data anggota private milik class lain. Contohnya seperti berikut:

class Honda
{
private:

public:

Friend class Suzuki // Suzuki sebagai class friend
};
class Suzuki
{
private:

public:

};
Read more...