Inheritance between class PEMROGRAMAN BERORIENTASI OBJEK

570 Direktorat Pembinaan SMK | 2008 CTriangle adalah class turunannya. Class turunan akan menurunkan seluruh anggota yang dimiliki oleh class dasarparentnya. Jadi jika class paret mempunyai anggota A dan diturunkan pada class lain dengan anggota B,maka clas turunan ini akan memiliki A dan B. Untuk menurunkan class, menggunakan operator : colon pada saat deklarasi, syntax : class derived_class_name: public base_class_name; Dimana derived_class_name adalah nama dari derived class dan base_class_name adalah nama dari class asal. public dapat digantikan dengan tipe akses lainnya : protected atau private, Perhatikan contoh program dibawah ini : Program 16.29 include iostream.h class CPolygon { protected: int width, height; public: void set_values int a, int b { width=a; height=b;} }; class CRectangle: public CPolygon { public: int area void { return width height; } }; class CTriangle: public CPolygon { public: int area void { return width height 2 ; } }; int main { CRectangle rect; CTriangle trgl; rect.set_values 4 , 5 ; trgl.set_values 4 , 5 ; cout rect.area endl; cout trgl.area endl; system PAUSE ; 2008 | Direktorat Pembinaan SMK 571 return EXIT_SUCCESS; } Keluaran program diatas adalah : 20 10 Class CRectangle dan CTriangle masing-masing mengandung anggota dari CPolygon, yaitu : width, height dan set_values.

16.9. Multiple inheritance

Dalam C++ memungkinkan untuk menurunkan field atau method dari satu atau lebih class dengan menggunakan operator koma dalam deklarasi class turunan. Contoh, akan dibuat class untuk menampilkan dilayar COutput dan akan diturunkan ke class CRectangle and CTriangle maka dapat dituliskan : class CRectangle: public CPolygon, public COutput { class CTriangle: public CPolygon, public COutput { perhatikan contoh program multiple inheritance dibawah ini: Program 16.30 include iostream.h class CPolygon { protected: int width, height; public: void set_values int a, int b { width=a; height=b;} }; class COutput { public: void output int i; }; void COutput::output int i { cout i endl; } class CRectangle: public CPolygon, public COutput { public: int area void { return width height; } 572 Direktorat Pembinaan SMK | 2008 }; class CTriangle: public CPolygon, public COutput { public: int area void { return width height 2 ; } }; int main { CRectangle rect; CTriangle trgl; rect.set_values 4 , 5 ; trgl.set_values 4 , 5 ; rect.output rect.area; trgl.output trgl.area; system PAUSE ; return EXIT_SUCCESS; } Keluaran program diatas adalah : 20 10

16.10. Polymorphism

Untuk mempelajari materi polimorfisme kita harus paham dulu terhadap penggunaan pointer dan inheritance. Coba anda pahami instruksi berikut, jika anda masih belum paham pelajari kembali materi terkait: int a::bc {}; Materi Class a ‐b Materi pointer class a: public b; Materi Relationships between classes

16.10.1. Pointers to Base Class

Salah satu keuntungan terbesar dalam menurunkan class adalah bahwa pointer ke class turunan merupakan tipe yang kompatibel dengan pointer ke class dasar. Bagian ini akan membahas kelebihan C++ dalam hal tersebut. Sebagai contoh kita akan menuliskan kembali program tentang persegi panjang dan segitiga dalam contoh sebelumnya dengan deklarasi pointer. Perhatikan contoh dibawah ini: Program 16.31 include iostream.h class CPolygon {