Home > Ren's Free Time > Inheritance / Pewarisan dalam C++ Part 2

Inheritance / Pewarisan dalam C++ Part 2

Salah satu perbedaan antara Java dengan C++ dalam hal pewarisan adalah C++ mengijinkan penggunanya melakukan multiple inheritance / pewarisan berganda sedangkan Java menggunakan interface untuk memperoleh keuntungan dari multiple inheritance ( koreksi saya untuk pernyataan ini jika salah. Saya agak ragu😀 ).

Multiple inheritance adalah dimana derived class mempunyai 2 atau lebih base class. Berikut ini syntax / format untuk multiple inheritance.

class nama_derived_class : penentu pewarisan nama_base_class1, penentu pewarisan nama_base_class2

{

/* code untuk derived class */

};

Menggunakan multiple inheritance mungkin dapat menyebabkan kerancuan dalam kompilasi code, misal nama method di dua base class samaUntuk mengatasi hal tersebut dapat dilakukan dengan menggunakan nama base class untuk memanggil method tersebut.


syntax sebagai berikut.


object_derived_class. name_base_class::method_base_class();


Contoh code multiple inheritance

#include <iostream>
using namespace std;

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 ()
{ return (width * height); }
};

class CTriangle: public CPolygon, public COutput {
public:
int area ()
{ 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());
return 0;
}




Referensi : dari berbagai sumber.😀

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: