Anda di halaman 1dari 6

Pewarisan Multiclass

Pewarisan multiclass adalah ada satu class yang mana objek ini sebagai anak yang
mempunyai dua induk.

B = induk = C

A Anak

Sehingga A akan mempunyai member dari B dan C

Contoh : sebuah tabung memiliki luas permukaan yang terdiri dari 2 buah lingkaran dan 1
persegi panjang yaitu sebagai selimutnya.

t/p (tinggi = panjang)


lebar = keliling lingkaran

Luas permukaan tabung bisa kita hitung dari luas lingkaran dan luas persegi panjang.
Dimana luas persegi panjang dihitung dari parameter tinggi tab ung dan keliling lingkaran.

= induk =

Anak

Methode yang harus diwariskan:


1. Persegi panjang (atau kita sebut segi empat) : luas dari persegi panjang
2. Lingkaran : luas dari lingkaran dan keliling lingkaran
Contoh program:
#include <iostream>
using namespace std;

class lingkaran{
public:
float radius;
float luas_lingkaran();
float keliling_lingkaran();
};

class segiempat{
public:
float panjang, lebar;
float luas_segiempat();
};

class tabung : public lingkaran, public segiempat{


float tinggi;
public:
tabung(float r, float t);
void luas_permukaan();
};

int main() {
// Write C++ code here
tabung tabung1(10,4);
tabung1.luas_permukaan();
return 0;
}

//Prosedur Class Tabung


tabung::tabung(float r, float t){
radius = r;
tinggi = t;
panjang = t;
lebar = keliling_lingkaran();
}
void tabung::luas_permukaan(){
float luas_permukaan = 2*luas_lingkaran() + luas_segiempat();
cout << " Luas permukaan tabung dengan radius " << radius << " dan tinggi " << tinggi << "
adalah " << luas_permukaan << endl;
}

// Prosedur Class lingkaran


float lingkaran::luas_lingkaran(){
return (3.14*radius*radius);
}
float lingkaran::keliling_lingkaran(){
return (2*3.14*radius);
}

// Prosedur Class segiempat


float segiempat::luas_segiempat(){
return (panjang*lebar);
}
Output:

Cara membuat pewarisan multi class:


Pada kali ini akan diwarisi dari segiempat dan lingkaran. Setalah class gunakan tanda titik
dua (:) lalu tuliskan tipe enkapsulasi. Untuk enkapsulasi kedua, hanya perlu diberi tanda
koma (,) setelah nama enkapsulasi pertama. Dengan demikian kita mewarisi dua class.
Untuk mewarisi enkapsulasi lebih dari 2 maka hanya perlu ditambahkan tanda koma(,).
Secara teori, tidak ada batasan berapa jumlah class yang diwarisinya.
Contoh:
Class tabung : public lingkaran, public segiempat{
Dengan demikian, tabung akan memiliki member dari lingkaran dan segiempat.

Ketika ingin membatasi methode yang punya anaknya tidak turun ke bawah maka kita dapat
menggunakan hak akses yang tidak public, artinya ketika diturunkan maka akan berubah
sesuai dengan tipe enkapsulasi pewarisan yang digunakan.
Pewarisan Multilevel

Pewarisan multilevel adalah pewarisan yang levelnya bertingkat. Misalnya, dalam sebuah
class ada induk dan anak, induk mewarisi membernya ke anak. Dalam multilevel anak
mewarisi lagi ke cucu.
Induk (A)

Anak (B) (A)

Cucu (C) (B) (A)


Sehingga, cucu akan memiliki 3 member, yaitu member dia sendiri, member yang diwarisi
dari anak, dan member yang diwarisi dari induk.

Contoh program:

#include <iostream>

using namespace std;

struct induk{

int member_induk;

};

struct anak : public induk{

int member_anak;

};

struct cucu : public anak{

int member_cucu;

};

int main() {

cucu cucu_ku;

cucu_ku.member_cucu;
cucu_ku.member_anak;

cucu_ku.member_induk;

return 0;

Output:

Jika dirunning tidak ada error, artinya cucu telah berhasil menarik 2 member diatasnya yaitu
member anak dan member induk. Ketika kita lakukan pewarisan multilevel maka semua member
yang ada diatasnya akan diwarisi kebawah.

Anda mungkin juga menyukai