Bahasa C++

10 November 2009

C++ diciptakan oleh Bjarne di laboratorium Bell, yang merupakan pengembangan dari bahasa C dan simula. Saat ini bahasa C++ sangat popular dalam pengembangan software yang berbasis OOP
Dalam C++ Struct dan class mempunyai penulisan yang sama. Deklarasi class daan struct memiliki anggota dengan akses public kecuali jika dinyatakan lain.






Struct C           Class C
{                 {
int I           public :
void f () ;        int I ;
}                void f ()
                  }



Kedua deklarasi tersebut memiliki arti yang sama.
Hal ini adalah pilihan desain yang diambil oleh desainer C++ (Bjarne Stroustrup) untuk menggunakn C sebagai basis C++ daripada harus menggunakan bahasa baru.
C ++ tidak membedakan nama class dan nama tag, paling tidak dari sudut pandang programmer dan tetap menerima deklarasi structure. Kompatibilitas C ++ tidak sebatas pada perbedaan nama type daan nama class karena C++ masih perlu mendefinisikan type POD (Plain Old Data). C++ mendefinisikan POD Type sebagai objek suatu class yang tidak memiliki userdefined constructor, anggota protected maupun private, tidak memiliki base class dan tidak memiliki fungsi virtual.
Compiller C++ dapat menambahkan default constructor bilamana diperlukan, apabila dalam definisi class:
• Tidak tertulis secara eksplisit default constructor dan tidak ada dejlarasi constructor lain.
• Tidak ada anggota class berupa data const maupun referens.
Adapun cara kerja C++ ada 2 tahap :
• Pertama, inisialisasi data
• Kedua, ekesekusi constructor (assignment)
Jika menggunakan Assignment , 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 :
Konversi A ke B dapat dilakuakn secara eksplisit dengan menggunakan typecast :

A a ;
B b=statistic_cast <B>(a) ; atau
B b=(B) a ;


0 komentar: