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 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
2
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
} ;
Tidak ada komentar:
Posting Komentar
Silakan tinggalkan komentar Anda