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.
 
