Kamis, 23 September 2010


CLASS DAN ANGGOTANYA
Dalam C++ class merupakan organisasi data dan fungsi
 












Encapsulation : Data & Fungsi dalam organisasi yang sama, yakni class.
Member class : data & fungsi.
Syntaxnya sbb: 










Proteksi member/Permission label :
1.    Private
bisa diakses oleh class sama, friend class,  sifat information hiding, member (data/fungsi) tidak dapat diakses dari luar class).
2.    Protected
bisa diakses oleh class sama, friend class, class turunan
3.    Public
bisa diakses oleh siapa saja (class lain fungsi lain, fungsi main).
Sebuah class mempunyai beberapa fungsi khusus, yaitu constructor, copy constructor, destructor dan copy assignment operator.

1.    Constructor
Adalah anggota class yang bertugas melakukan inisialisasi obyek (instance) dari suatu class C. Constructor mempunyai nama yang sama dengan nama class, dan tidak mempunyai return value.








Compiler C++ memutuskan untuk menambahkan default dan copy construtor setelah menemui kedua baris program tersebut, sehingga definisi class secara efektif menjadi sebagai berikut :













copy constructor bentukan compiler menggunakan copy constructor class string untuk inisialisasi name dari aName. Jika class C tidak mempunyai constructor, maka compiler menambahkan juga default constructor untuk inisialisasi name menggunakan default constructor class string. Inisialisasi obyek menggunakan constructor (non-default) dapat dilakukan dengan member initializer maupun dengan assignment sebagai berikut:

 














2.    Copy Constructor dan Copy Assignment
Sejauh ini sudah dibahas mengenai copy constructor sebagai anggota class yang berperan penting pada saat pembentukan obyek. Apabila sebuah class tidak menyatakan secara tegas copy constructor class tersebut, maka compiler menambahkan copy constructor dengan bentuk deklarasi, C(const C& c). Bentuk lain copy constructor adalah sebagai berikut :






Copy constructor class C adalah constructor yang mempunyai satu argumen. Sebuah copy constructor boleh mempunyai lebih dari satu argumen, asalkan argumen tersebut mempunyai nilai default (default argument).

3.    Destructor
Destructor adalah anggota class (member function) yang berfungsi melepas memori
pada saat suatu obyek sudah tidak diperlukan lagi. Fungsi destructor kebalikan
constructor. Destructor tidak mempunyai atau memerlukan argumen. Destructor juga
tidak mengembalikan nilai apapun (tidak mempunyai return type). Seperti halnya
constructor, compiler dapat menambahkan sebuah destructor jika sebuah class tidak
mempunyai destructor.
Sebuah destructor dapat berupa fungsi virtual. Hal ini menjadi keharusan jika class B,
• merupakan base class.
• class D yang menggunakan B sebagai base class mempunyai anggota berupa
  data dengan alokasi memori dinamik (pointer).
















CARA MENURUNKAN CLASS
Inheritance
Salah satu hal penting dalam class adalah inheritance. Inheritance mengijinkan kita untuk membuat objek yang diturunkan dari objek lain, sehingga dimungkinkan didalamnya terdapat member lain selain membernya sendiri. Sebagai contoh, misalnya kita ingin mendeklarasikan sederetan class yang mendeskripsikan polygon seperti CRectangle atau CTriangle. Keduanya dapat dideskripsikan dengan dua atribut yakni : alas dan tinggi.
Class yang diturunkan dari class lain mewarisi semua member yang ada dalam class dasarnya. Hal ini berarti bahwa jika class dasarnya memiliki member A dan kita menurunkannya ke class lain yang memiliki member B, maka class turunan akan terdiri dari A dan B.


























Sebagaimana kita lihat objek class CRectangle dan CTriangle masing-masing berisi member dari class CPolygon yakni : width, height dan set_values().
Pada prinsipnya setiap member dari base class diwariskan kepada class turunan kecuali
•    Constructor dan destructor
•    operator=() member
•    friends

OVERLOADING OPERATOR

Dibawah ini adalah operator-operator yang dapat dioverload:
 +    -    *    /    =    <    >    +=   -=   *=   /=   <<   >>
<<=  >>=  ==   !=   <=   >=   ++   --   %    &    ^    !    |
~    &=   ^=   |=   &&   ||   %=   []   ()   new  delete
Untuk mengoverload operator kita cukup menuliskan satu fungsi anggota class dengan nama operator diikuti dengan operator apa yang akan dioverload. Syntaxnya sbb:
type operator sign (parameters);
Misal : Kita akan menjumlahkan vector 2 dimensi a(3,1) and b(1,2). Hasilnya adalah sbb: (3+1,1+2) = (4,3). Untuk keperluan ini maka kita dapat mengoverload operator +.
Contoh :

























MEMBUAT PROGRAM

KONVERSI BILANGAN
 








































































































































OUTPUTNYA