Contoh Soal
Jika diketahui class dan objek adalah 2 aspek utama pada pemrograman berbasis objek. Maka buatlah sebuah program dengan ketentuan: Dimana sebuah Parent class dapat ‘menurunkan’ member yang dimilikinya minimal kepada 2 class lain (child class). Tidak semua member dari class induk akan diturunkan, maka buatlah access specifier untuk menentukan member mana saja yang dapat di akses oleh child class. Pada setiap child class harus memiliki conditional statement yang berbeda, namun semua atribut harus dideklarasikan di parent class. Yang terakhir buatlah method semisal post & get untuk memanupulasi objek, pastikan method yang anda buat reusable dan anda boleh melakukan overloading.
Jawaban:
#include <iostream> class Hewan{ private: std::string nama; double tinggi; double berat; public: std::string suara; public: std::string GetNama(){return nama;} double GetTinggi(){return tinggi;} double GetBerat(){return berat;} void setAll(std::string, std::string, double, double); Hewan(std::string, std::string, double, double); Hewan(); void ToString(); }; class Buwung: public Hewan{ public: //default suara burung versi joke berskala nasional std::string GetSuara(){ if (suara == ""){ return suara = "TRILILILILILI"; }else{return suara;} } Buwung(std::string, std::string, double, double); Buwung(): Hewan(){}; void ToString(); }; class Buwaya: public Hewan{ public: //default suara buawaya versi joke *** std::string GetSuara(){ if (suara == ""){ return suara = "****** ughtea"; }else{return suara;} } Buwaya(std::string, std::string, double, double); Buwaya(): Hewan(){}; void ToString(); }; void Hewan::setAll(std::string nama, std::string suara, double tinggi, double berat) { this->nama = nama; this->suara = suara; this->tinggi = tinggi; this->berat = berat; } Hewan::Hewan(std::string nama, std::string suara, double tinggi, double berat) { this->nama = nama; this->suara = suara; this->tinggi = tinggi; this->berat = berat; } Hewan::Hewan() { this->nama = ""; this->suara = ""; this->tinggi = 0; this->berat = 0; } void Buwung::ToString() { std::cout << GetNama() << " tingginya " << GetTinggi() << " cm serta " << GetBerat() << "kg dan suaranya " << GetSuara() << std::endl; } void Buwaya::ToString() { std::cout << GetNama() << " tingginya " << GetTinggi() << " cm serta beratnya " << GetBerat() << "kg dan suaranya " << GetSuara() << std::endl; } int main(){ Buwung Puyuh; Puyuh.setAll("Puyuh", "", 22, 2); Puyuh.ToString(); Buwaya aziz; aziz.setAll("Aziz", "", 170, 47); aziz.ToString(); return 0; }
Output
:
Puyuh tingginya 22 cm serta beratnya 22 kg dan suaranya Trilili
Aziz tingginya 170 cm serta beratnya 47 kg dan suaranya ****** ughtea