menggunakan inheritance
#include <iostream>
using namespace std;
// base class
class mahasiswa {
public:
void nama() {
cout << "Muhammad Ilhamdi Akbar" << endl;
}
void nim() {
cout << "2010953001" << endl;
}
};
// derived class
class nilai : public mahasiswa {
public:
void skor() {
cout << "Nilai : A" << endl;
}
};
int main() {
// buat objek dari kelas nilai
nilai nilai1;
// memanggil anggota kelas utama
nilai1.nama();
nilai1.nim();
// memanggil anggota kelas turunan
nilai1.skor();
return 0;
}
keluaran
● jelaskan macam - macam akses specifier dalam C++ dan buatlah tabel perbedaan serta
satu contoh program dari cara penggunaannya.
penjelasan
a. Public adalah label yang berfungsi untuk menentukan sifat akses ke semua
member yang mengikutinya (di bawahnya), sehingga memiliki sifat dapat di
akses dari manapun. Dapat di akses dari dalam class itu sendiri, dari anak
class (derived class) dan juga dari luar class.
b. Private adalah label yang berfungsi untuk menentukan sifat akses ke semua
member yang mengikutinya menjadi memiliki sifat yang tidak dapat di
akses dari manapun kecuali melalui friend function dan dari dalam class itu
sendiri.
c. Protected adalah label yang berfungsi untuk menentukan sifat akses semua
member yang mengikutinya, sehingga memiliki sifat yang tidak dapat
diakses dari luar class tapi masih dapat di akses dari dalam class maupun
anak class (derived class)
tabel perbedaan
“Dapat di akses dari “tidak dapat di akses dari “tidak dapat diakses dari
dalam class itu sendiri, manapun kecuali melalui luar class tapi masih dapat
dari anak class (derived friend function dan dari di akses dari dalam class
class) dan juga dari luar dalam class itu sendiri.” maupun anak class
class” (derived class)”
program
#include <iostream>
using namespace std;
class Base {
private:
int pvt = 1;
protected:
int prot = 2;
public:
int pub = 3;
int main() {
PublicDerived object1;
cout << "Private = " << object1.getPVT() << endl;
cout << "Protected = " << object1.getProt() << endl;
cout << "Public = " << object1.pub << endl;
return 0;
}
#include <iostream>
using namespace std;
class Mahasiswa {
public:
string mhs() {
return "123456789";
}
};
int main()
{
Nama NamaMahasiswa;
cout << NamaMahasiswa.mhs() << endl;
return 0;
}
Apakah dalam program tersebut sudah terjadi function overriding? Jelaskan!
Pada program diatas sudah terjadinya penerapan dari fungsi overriding hal ini dapat
dilihat dari output yang dihasilkan bahwa nantinya output yang keluar
adalah”ahmad dhani” dari sini dapat disimpulkan bahwa fungsi dari turunan akan
dieksekusi dengan mengesampingkan fungsi dasar. Fungsi tersebut diganti karna
memanggil fungsi objek kelas turunan.
#include <iostream>
using namespace std;
class Mahasiswa {
public:
string mhs() {
return "nim : 123456789";
}
};
int main()
{
Nama NamaMahasiswa1,NamaMahasiswa2;
cout << NamaMahasiswa1.mhs() << endl;
cout <<NamaMahasiswa2.Mahasiswa::mhs();
return 0;
}
● jelaskan perbedaan dan keunggulan multilevel dan hierarchical dalam tipe inheritance
dan buatkan program penggunaan dari masing-masing tipe.
perbedaan
multilevel hierarchical
penurunan class berjenjang dari satu Penurunan hiraki terjadi jika lebih dari
class ke class lain. tidak hanya dapat satu kelas diwarisi dari kelas dasar.
menurunkan kelas dari kelas dasar tetapi Dimana pada penurunan ini semua fitur
juga dapat menurunkan kelas dari kelas yang umum dari kelas anak termasuk
turunan. dalam kelas induk
keunggulan
multilevel hierarchical
Cara pembuatan multilevel inheritance semua fitur yang umum dari kelas anak
sebenarnya sama seperti penurunan class termasuk dalam kelas induk
biasa, hanya saja setiap class saling
terhubung satu sama lain.
program
multilevel hierarchical
// derived class 2
class Cat : public Animal {
public:
void meow() {
cout << "I am a Cat. Meow." <<
endl;
}
};
int main() {
// Create object of Dog class
Dog dog1;
cout << "Dog Class:" << endl;
dog1.info(); // Parent Class function
dog1.bark();
return 0;
}
#include <iostream>
using namespace std;
class Base {
public:
virtual void print() {
cout << "Base Function" << endl;
}
};
return 0;
}
Isilah … sehingga program fungsi turunan dapat berjalan dan menampilkan “Derived
Function”
Tuliskan sintaks programnya dibawah ini:
#include <iostream>
using namespace std;
class Base {
public:
virtual void print() {
cout << "Base Function" << endl;
}
};
int main() {
Derived Derived1;
Base*Base1 = & Derived1;
Base1->print();
return 0;
}
class Teknik {
public:
void jurusan() {
cout << "Saya adalah anak Teknik \n" ;
}
};
int main() {
.....
.......
........
................
}
class Teknik {
public:
void jurusan() {
cout << "Saya adalah anak Teknik \n" ;
}
};
int main() {
Elektro elektro1;
// Call print() function of Derived class
elektro1.jurusan();
Mesin mesin1;
mesin1.jurusan();
return 0;
}