Gunadarma

Saturday, May 29, 2010

Penerapan Class dalam C++

Dalam C++, Struct dan class mempunyai penulisan yang sama. Deklarasi class dan struct memiliki anggota dengan akses public kecuali jika dinyatakan lain. C ++ tidak membedakan nama class dan nama tag, paling tidak dari sudut pandang pemprogram dan tetap menerima deklarasi structure. Kompatibilitas C ++ tidak sebatas pada perbedaan nama class daan nama type karena C++ masih memerlukan definisi type POD (Plain Old Data). C++ mendefinisikan POD Type sebagai objek suatu class yang tidak mempunyai userdefined constructor, anggota protected maupun private, tidak memiliki base class dan tidak memiliki fungsi virtual.

Compiller C++ dapat menambahkan default constructor apabila diperlukan, jika dalam definisi class:
  • Tidak tertulis secara eksplisit default constructor dan tidak ada dejlarasi constructor lain.
  • Tidak ada anggota class berupa data const maupun referens.
Cara kerja C++ ada 2 tahap :
  • Pertama, inisialisasi data
  • Kedua, ekesekusi constructor
Jika menggunakan langkah kedua , eksekusi program dilakukan 2 kali: pertama inisialisasi data lalu assignment. Sedangkan menggunakan member initialization hanya memanggil sekali memanggil constructor calss string. Sonstructor dengan satu argument berfungsi sebagai implicit conversion operator.
Sebagai contoh deklarasi class A dan B berikut :

Class A
{
Public :
A () ;
}
Class B
{
Public :
B (const A&) ;
}

Lalu terjadi konversi type obyek A ke B secara implicit melalui Copy constructor B
A a
B b=a ; //implicit conversion

C++ menyediakn suatu sarana yang menggunakan keyword Eksplisit untuk merubah constructor dengan satu argumen agar tidak berfungsi sebagai conversion operator.
Jika class B menyatakan explicit pada copy constructor sebagai berikut :

Class B
{
Public :
Explicit B (const A& a) ; //explicit ctor
}

Maka konversi secara implicit tidak daapat dilakukan. Konversi A ke B dapat dilakukan secara eksplisit dengan menggunakan typecast :
A a ;
B b=statistic_cast <B>(a) ; atau
B b=(B) a ;


1 comments:

Anonymous said...

http://student.eepis-its.edu/~a12ix/tutorial/bahasa%20pemrogaman.pdf

Post a Comment

Rafly Andreas. Powered by Blogger.
casper
Twitter Delicious Facebook Digg Favorites More