/*Számítástechnika II. 2. programozási feladat. C++ programozási feladat Feladat: Dolgozzon ki legalább kétszintű osztályhierarchiából és egyedekből álló objektum orientált megoldást C++ nyelven az alább megadott témakörökre! A feladat megoldásában alkalmazza a vektorok dinamikus foglalását. Definiálja az objektumok adattagjainak történő értékadást és lekérdezést lehetővé tévő tagfüggvényeket. --> Hozza létre az Emlős osztályt Lábak száma, Szőrzet van, Súlya adattagokkal. Származtassa belőle a Macska és a Kutya alosztályt. A Macska alosztályt bővítse Szőrzet színe, Jellemző hangok adattagokkal. A Kutya osztályt egészítse ki a Marmagasság, Vakvezető adattagokkal. Írjon programot, amellyel létrehozhatók Macska és Kutya egyedeket tároló vektorok. A program tegye lehetővé a feltöltést és a fekete színű macskák összes adatának kilistázását, valamint a vakvezetésre alkalmas kutyák átlagos súlyának meghatározását. */ #include //getch(), clrscr() miatt #include //cin, cout miatt #include //toupper miatt #include //strcpy() miatt #include //exit miatt typedef int bool; //sajat bool logikai tipus definialasa class Emlos //Emlos osztaly definicioja { protected: int LabakSzama; //adattagok double Sulya; bool SzorzetVan; public: //default konstruktor es destruktor int Get_LabakSzama(void){return LabakSzama;} void Set_LabakSzama(int akt_labszam){LabakSzama = akt_labszam;} double Get_Sulya(void){return Sulya;} void Set_Sulya(double akt_suly){Sulya = akt_suly;} bool Get_SzorzetVan(void){return SzorzetVan;} void Set_SzorzetVan(bool akt_szvan){SzorzetVan = akt_szvan;} // bool& SzorzetVanR(){return SzorzetVan;} // ez a megoldas is hasznalhato, de szerintem megkeruli az obj elveket // mert ha megadom a valtozo refet mar nem is igazan private, // gyakorlatilag publikka valt. mert az ellenorzest elvesztettuk! }; enum MACSKA_SZIN {feher,fekete,sarga,szurke,foltos,cirmos,egyeb}; //felsorolt tipus char msz[7][7]={"feher","fekete","sarga","szurke","foltos","cirmos","egyeb"}; //kiiratahoz szukseges typedef char HANG[40]; // a szarmaztatott osztalyok definicioja: class Macska : public Emlos //orokli az Emlos osztaly adattagjait { //es tagfuggvenyeit, private: //kibovitve uj tagokkal MACSKA_SZIN SzorzetSzine; HANG JellemzoHang; public: MACSKA_SZIN Get_SzorzetSzine(void){return SzorzetSzine;} void Set_SzorzetSzine(MACSKA_SZIN aktszin) {SzorzetSzine = aktszin;} char* Get_JellemzoHang(void) {return JellemzoHang;} void Set_JellemzoHang(char * akthang) {strcpy(JellemzoHang,akthang);} }; class Kutya : public Emlos //ose az Emlos osztaly hasonloan a Macska osztalyhoz { private: double Marmagassag; bool Vakvezeto; public: bool Get_Vakvezeto(void){return Vakvezeto;} void Set_Vakvezeto(bool akt_vakvezeto){Vakvezeto = akt_vakvezeto;} double Get_Mamagassag(void){return Marmagassag;} void Set_Marmagassag(double akt_mmag){Marmagassag = akt_mmag;} }; void main() //mintaprogram az osztalyok alkalmazasara! { clrscr(); cout<<"*****Peldaprogram: Emlos Demo!*****"<bill. nyomasra!"<bill. nyomasra! :-)"<