#include #include class cElain { char nimi[10]; public: cElain(const char *n="???") { strcpy(nimi,n); } virtual void Nimi() { cout << nimi; } }; class cLintu : public cElain { int karkivali; public: cLintu(const char *n="Lintu",int ak=100) : cElain(n), karkivali(ak) { ; } virtual void viserra() { Nimi(); cout << ": Titityy" << endl; } }; class cHevonen : public cElain { int korkeus; public: cHevonen(const char *n="Hevonen",int ak=140) : cElain(n), korkeus(ak) { ; } virtual void hirnu() { Nimi(); cout << ": Iihahaa" << endl; } }; // cHevonen::cHevonen(int ak) : korkeus(ak) { ; } class cPegasus : public cHevonen, public cLintu { public: cPegasus(const char *n="Pegasus",int akor=170,int akar=800) : cHevonen(n,akor), cLintu("Tipu",akar) {;} void viserra() { hirnu(); } void hirnu() { cHevonen::Nimi(); cout << ": Iihahaa titutyy" << endl; } }; int main(void) { cHevonen *ph; cLintu *pl; cHevonen polle; cPegasus pega; cLintu tipu; tipu.viserra(); pega.viserra(); pega.hirnu(); ph = &polle; ph->hirnu(); ph = &pega; ph->hirnu(); pl = &pega; pl->viserra(); cPegasus *pp = &pega; pp->hirnu(); pp->viserra(); return 0; }