Jumat, 18 November 2011

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>

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>

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.

Tidak ada komentar:

Posting Komentar