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 ;
Bahasa C++
10 November 2009
Label:
Bahasa Program
Di Batam
01.24
Langganan:
Posting Komentar (Atom)
0 komentar:
Posting Komentar