C++ Lanjutan 30
9.5 INHERITANCE ( PEWARISAN )
C++ memungkinakan suatu kelas mewarisi data ataupun fungsi anggota kelas lain. Sifat seperti ini disebut pewarisan. Kelas uyang mewarisi sifat kelas lain disebut kelas turunan ( derived class ). Sedangkan kelas yang mewariskan sifat ke kelas lain lain disebut kelas dasar ( base class ).
Untuk memahami tentang konsep pewarisan, marilah kita lihat contoh berikut ini.
#include <iostream.h>
#include <conio.h>
#include <conio.h>
class Basis
{
private :
int alpha;
int bravo;
public :
void info_basis()
{
cout<<”info_basis() dijalankan…”<<endl;
}
};
class Turunan : public Basis
{
public :
void info_turunan()
{
cout<<”info_turunan() dijalankan…”<<endl;
}
};
void main()
{
clrscr();
Turunan anak;
anak.info_basis();
anak.info_turunan();
}
Keluarannya :
info_basis() dijalankan…
info_turunan() dijalankan…
Pada contoh diatas, terdapat kelas bernama Basis dan Turunan. Dalam hal ini :
· Basis adalah kelas dasar
· Turunan adalah kelas turunan
Kelas Turunan mewarisi sifat-sifat dari kelas Basis .
Perhatikan pernyataan pada main() :
Turunan anak;
Anak.info_basis();
Sekalipun info_basis() dideklarasikan pada kelas Basis, ia juga diwariskan pada kelas Turunan. Namun bagaimana mekanisme pewarisannya? Jawaban dari pertanyaan ini terletak pada topik berikut.
Pada pendeklarasian kelas Turunan terdapat baris sebagai berikut :
Class Turunan : public Basis
Pada baris ini terdapat kata-kata kunci tersebut pada konteks ini ? Untuk melihat kegunaan kata-kata kunci ini, perhatikan terlebih dulu program berikut.
#include <iostream.h>
#include <conio.h>
#include <conio.h>
class Basis
{
private :
int alpha;
int bravo;
public :
void info_basis()
{
cout<<”info_basis() dijalankan…”<<endl;
}
};
class Turunan : Basis
{
public :
void info_turunan()
{
cout<<”info_turunan() dijalankan…”<<endl;
}
};
void main()
{
clrscr();
Turunan anak;
anak.info_basis();
anak.info_turunan();
}
Perbedaan program di atas dengan program sebelumnya terletak pada kata-kunci public. Pada program diatas, kata kunci public pada baris yang berisi class Turunan dibuang.
Apabila program dikompilasi, kesalahan akan terjadi, yakni pada pernyataan :
anak.info_basis();
Kesalahan menyatakan bahwa Basis::info_basis() tidaklah dapat diakses pada main(). Lalu, apa artinya?
Bentuk seperti :
class Turunan : Basis
sebenarnya mempunyai makna yang sama dengan :
class Turunan : private Basis
Maksudnya yaitu semua anggota yang bersifat public ( dan juga protected ) pada kelas dasar ( Basis ) diwariskan ke kelas turunan ( Turunan ) sebagai anggota yang bersifat private.
Sedangkan kalau pewarisan dilakukan dengan public, semua anggota yang bersifat public pada kelas dasar diwariskan ke kelas turunan seperti apa adanya pada kelas basis.
^SELESAI^
Untuk yang mengikuti dari awal hingga akhir posting Dasar pemograman C++, Saya ucapkan terimakasih.