Class

Dalam C++ Struct dan class mempunyai penulisan yang sama. Deklarasi class daan
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