Class C++ Dasar, edisi 1


Class dasar C++


edisi 1

Deklarasi dan definisi


Deklarasi dan definisi adalah langkah awal dalam setiap penulisan program tidak terkecuali dalam bahasa C++. Deklarasi dan definisi diperlukan untuk semua tipe data termasuk tipe data bentukan user (user-defined type).



Berikut bentuk sederhana dari Deklarasi class :

  class C {}; atau
  struct C {};

Dalam bahasa C++ struct dan class mempunyai pengertian yang sama. Deklarasi class dengan struct mempunyai anggota dan akses public kecuali jika dinyatakan lain :

struct C
{
   int a ;
   viod f ();
}

class C
{
public :
   int a ;
   void f ();
}

kedua deklarasi tersebut mempunya arti yang sama. Tentunya ada konsekuensi atas pilihan C++ tesebut, salah satu contohnya adalah kompatibilats terhadap bahasa C.
Dalam bahasa C :

  struct C { … };



  C c; /* error, C adalah nama tag */
  C *pc; /* error, C adalah nama tag */

Dalam bahasa C, kedua Deklarasi tersebut harus ditulis dengan :


    struct C c;
   struct C *pc;


atau menggunakan typedef sebagai berikut :


   struct C { … };
   typedef struct C C;
   C c;
   C *pc;

C++ memperlakukan nama class, C sebagai nama tag sekaligus nama tipe dan dapat dipergunakan dalam deklarasi, seperti contoh berikut :

   class C c;

Dengan demikian C++ tidak membedakan nama tag dengan nama class, paling tidak dari sudut pandang pemrogram (programmer), dan tetap menerima deklarasi structure seperti dalam bahasa C. Kompatibilitas C++ terhadap tidak sebatas perbedaan nama tag dan nama tipe, karena standar C++ masih perlu mendefinisikan tipe POD (Plain Old Data). POD type mempunyai banyak persamaan dengan structure dalam C. Standar C++ mendefinisikan POD type sebagai obyek suatu class yang tidak mempunyai user-defined constructor, anggota protected maupun private, tidak punya base class, dan tidak memiliki fungsi virtual.

contoh hubungan tersebut adalah hubungan antara satu class dengan satu atau lebih base class atau parent class. Jika class C mempunyai base class B, dikenal dengan inheritance, maka deklarasi class menjadi,

   class C : public B {}; atau
   class C : protected B {}; atau
   class C : private B {};


Akses terhadap anggota base class B dapat bersifat public, protected, maupun private, atau disebut dengan istilah public, protected atau private inheritance. Class C disebut dengan istilah derived class. Jika tidak dinyatakan bentuk akses secara eksplisit, seperti dalam deklarasi berikut:
class C : B
maka interpretasinya adalah private inheritance (default), tetapi jika menggunakan struct maka tetap merupakan public inheritance.
Jika desainer class C tersebut menginginkan hubungan multiple inheritance (MI) terhadap class B dan A, maka deklarasi class C menjadi,
class C : public B, public A { };
Sebuah class, seperti halnya class C mempunyai anggota berupa data maupun fungsi (member function). Isi class tersebut berada diantara tanda kurung { } dan dipilah-pilah sesuai dengan batasan akses yang ditentukan perancang (desainer) class tersebut.
        class C : public B
   {
     public:
     (explicit) C()(:member-initializer);
     C(const C& );
     C& operator=(const C&);
     (virtual)~C();
     statement lain
     (protected: statement)
     (private: statement)
   };


Secara ringkas batasan akses (access specifiers) mempunyai arti, seperti berikut ini :

Batasa akses :

 public  = semua class atau bebas
 protected =  class itu sendiri, friend, atau derived class.
 private = class itu sendiri ; friend.


Sebuah class dapat memberikan ijin untuk class lain mengakses bagian protected maupun private class tersebut melalui hubungan friendship (dinyatakan dengan keyword friend).
Sebuah class mempunyai beberapa fungsi khusus, yaitu constructor, copy constructor, destructor dan copy assignment operator.



sumber : IlmuKomputer.Com


Class C++ Dasar, edisi 1 Class C++ Dasar, edisi 1 Reviewed by Ardy S on February 08, 2013 Rating: 5

No comments:

Powered by Blogger.