#include <iostream>
using namespace std;
enum BREED { GOLDEN, CAIRN, DANDIE, SHETLAND, DOBERMAN, LAB} ;
class Mammal
{
public :
Mammal( ) ;
Mammal( int age) ;
~Mammal( ) ;
int GetAge( ) const { return itsAge; }
void SetAge( int age) { itsAge = age; }
int GetWeight( ) const { return itsWeight; }
void SetWeight( int weight) { itsWeight = weight; }
void Speak( ) const { cout << "Dzwiek ssaka!\n " ; }
void Sleep( ) const { cout << "Ciiicho. Wlasnie spie.\n " ; }
protected :
int itsAge;
int itsWeight;
} ;
class Dog : public Mammal
{
public :
Dog( ) ;
Dog( int age) ;
Dog( int age, int weight) ;
Dog( int age, BREED breed) ;
Dog( int age, int weight, BREED breed) ;
~Dog( ) ;
BREED GetBreed( ) const { return itsBreed; }
void SetBreed( BREED breed) { itsBreed = breed; }
void WagTail( ) const { cout << "Machanie ogonem..\n " ; }
void BegForFood( ) const { cout << "Prosze o jedzenie...\n " ; }
private :
BREED itsBreed;
} ;
Mammal:: Mammal ( ) :
itsAge( 1 ) ,
itsWeight( 5 )
{
cout << "Konstruktor klasy Mammal..." << endl;
}
Mammal:: Mammal ( int age) :
itsAge( age) ,
itsWeight( 5 )
{
cout << "Konstruktor klasy Mammal(int)..." << endl;
}
Mammal:: ~Mammal( )
{
cout << "Destruktor klasy Mammal..." << endl;
}
Dog:: Dog ( ) :
Mammal( ) ,
itsBreed( GOLDEN)
{
cout << "Konstruktor klasy Dog..." << endl;
}
Dog:: Dog ( int age) :
Mammal( age) ,
itsBreed( GOLDEN)
{
cout << "Konstruktor klasy Dog(int)..." << endl;
}
Dog:: Dog ( int age, int weight) :
Mammal( age) ,
itsBreed( GOLDEN)
{
itsWeight = weight;
cout << "Konstruktor klasy Dog(int, int )..." << endl;
}
Dog:: Dog ( int age, int weight, BREED breed) :
Mammal( age) ,
itsBreed( breed)
{
itsWeight = weight;
cout << "Konstruktor klasy Dog(int, int, BREED)..." << endl;
}
Dog:: Dog ( int age, BREED breed) :
Mammal( age) ,
itsBreed( breed)
{
cout << "Konstruktor klasyt Dog(int, BREED)..." << endl;
}
Dog:: ~Dog( )
{
cout << "Destruktor klasy Dog..." << endl;
}
int main( )
{
Dog Fido;
Dog rover( 5 ) ;
Dog buster( 6 ,8 ) ;
Dog yorkie ( 3 , GOLDEN) ;
Dog dobbie ( 4 ,20 ,DOBERMAN) ;
Fido.Speak ( ) ;
Fido.WagTail ( ) ;
cout << "Yorkie ma " << yorkie.GetAge ( ) << " lat" << endl;
cout << "Dobbie wazy " << dobbie.GetWeight ( ) << " funtow" << endl;
char response;
cin >> response;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwplbnVtIEJSRUVEIHsgR09MREVOLCBDQUlSTiwgREFORElFLCBTSEVUTEFORCwgRE9CRVJNQU4sIExBQn07CgpjbGFzcyBNYW1tYWwKewpwdWJsaWM6CglNYW1tYWwoKTsKCU1hbW1hbChpbnQgYWdlKTsKCX5NYW1tYWwoKTsKCglpbnQgR2V0QWdlKCkgY29uc3QgeyByZXR1cm4gaXRzQWdlO30KCXZvaWQgU2V0QWdlKGludCBhZ2UpIHsgaXRzQWdlID0gYWdlO30KCglpbnQgR2V0V2VpZ2h0KCkgY29uc3R7cmV0dXJuIGl0c1dlaWdodDt9Cgl2b2lkIFNldFdlaWdodChpbnQgd2VpZ2h0KSB7IGl0c1dlaWdodCA9IHdlaWdodDt9CgoJdm9pZCBTcGVhaygpIGNvbnN0IHsgY291dCA8PCAiRHp3aWVrIHNzYWthIVxuIjt9Cgl2b2lkIFNsZWVwKCljb25zdCB7IGNvdXQgPDwgIkNpaWljaG8uIFdsYXNuaWUgc3BpZS5cbiI7fQpwcm90ZWN0ZWQ6CglpbnQgaXRzQWdlOwoJaW50IGl0c1dlaWdodDsKfTsKCmNsYXNzIERvZyA6IHB1YmxpYyBNYW1tYWwKewpwdWJsaWM6CglEb2coKTsKCURvZyhpbnQgYWdlKTsKCURvZyhpbnQgYWdlLCBpbnQgd2VpZ2h0KTsKCURvZyhpbnQgYWdlLCBCUkVFRCBicmVlZCk7CglEb2coaW50IGFnZSwgaW50IHdlaWdodCwgQlJFRUQgYnJlZWQpOwoJfkRvZygpOwoKCUJSRUVEIEdldEJyZWVkKCkgY29uc3Qge3JldHVybiBpdHNCcmVlZDt9Cgl2b2lkIFNldEJyZWVkKEJSRUVEIGJyZWVkKSB7aXRzQnJlZWQgPSBicmVlZDt9CgoJdm9pZCBXYWdUYWlsKCkgY29uc3QgeyBjb3V0IDw8ICJNYWNoYW5pZSBvZ29uZW0uLlxuIjt9Cgl2b2lkIEJlZ0ZvckZvb2QoKSBjb25zdCB7IGNvdXQgPDwgIlByb3N6ZSBvIGplZHplbmllLi4uXG4iO30KCnByaXZhdGU6CglCUkVFRCBpdHNCcmVlZDsKfTsKCk1hbW1hbDo6TWFtbWFsKCk6Cml0c0FnZSgxKSwKaXRzV2VpZ2h0KDUpCnsKCWNvdXQgPDwgIktvbnN0cnVrdG9yIGtsYXN5IE1hbW1hbC4uLiIgPDwgZW5kbDsKfQpNYW1tYWw6Ok1hbW1hbChpbnQgYWdlKToKaXRzQWdlKGFnZSksCml0c1dlaWdodCg1KQp7Cgljb3V0IDw8ICJLb25zdHJ1a3RvciBrbGFzeSBNYW1tYWwoaW50KS4uLiIgPDwgZW5kbDsKfQpNYW1tYWw6On5NYW1tYWwoKQp7Cgljb3V0IDw8ICJEZXN0cnVrdG9yIGtsYXN5IE1hbW1hbC4uLiIgPDwgZW5kbDsKfQpEb2c6OkRvZygpOgpNYW1tYWwoKSwKaXRzQnJlZWQoR09MREVOKQp7Cgljb3V0IDw8ICJLb25zdHJ1a3RvciBrbGFzeSBEb2cuLi4iIDw8IGVuZGw7Cn0KRG9nOjpEb2coaW50IGFnZSk6Ck1hbW1hbChhZ2UpLAppdHNCcmVlZChHT0xERU4pCnsKCWNvdXQgPDwgIktvbnN0cnVrdG9yIGtsYXN5IERvZyhpbnQpLi4uIiA8PCBlbmRsOwp9CkRvZzo6RG9nKGludCBhZ2UsIGludCB3ZWlnaHQpOgpNYW1tYWwoYWdlKSwKaXRzQnJlZWQoR09MREVOKQp7CglpdHNXZWlnaHQgPSB3ZWlnaHQ7Cgljb3V0IDw8ICJLb25zdHJ1a3RvciBrbGFzeSBEb2coaW50LCBpbnQgKS4uLiIgPDwgZW5kbDsKfQpEb2c6OkRvZyhpbnQgYWdlLCBpbnQgd2VpZ2h0LCBCUkVFRCBicmVlZCk6Ck1hbW1hbChhZ2UpLAppdHNCcmVlZChicmVlZCkKewoJaXRzV2VpZ2h0ID0gd2VpZ2h0OwoJY291dCA8PCAiS29uc3RydWt0b3Iga2xhc3kgRG9nKGludCwgaW50LCBCUkVFRCkuLi4iIDw8IGVuZGw7Cn0KRG9nOjpEb2coaW50IGFnZSwgQlJFRUQgYnJlZWQpOgpNYW1tYWwoYWdlKSwKaXRzQnJlZWQoYnJlZWQpCnsKCWNvdXQgPDwgIktvbnN0cnVrdG9yIGtsYXN5dCBEb2coaW50LCBCUkVFRCkuLi4iIDw8IGVuZGw7Cn0KRG9nOjp+RG9nKCkKewoJY291dCA8PCAiRGVzdHJ1a3RvciBrbGFzeSBEb2cuLi4iIDw8IGVuZGw7Cn0KCmludCBtYWluKCkKewoJRG9nIEZpZG87CglEb2cgcm92ZXIoNSk7CglEb2cgYnVzdGVyKDYsOCk7CglEb2cgeW9ya2llICgzLCBHT0xERU4pOwoJRG9nIGRvYmJpZSAoNCwyMCxET0JFUk1BTik7CgkKCUZpZG8uU3BlYWsoKTsKCUZpZG8uV2FnVGFpbCgpOwoJY291dCA8PCAiWW9ya2llIG1hICIgPDwgeW9ya2llLkdldEFnZSgpIDw8ICIgbGF0IiA8PCBlbmRsOwoJY291dCA8PCAiRG9iYmllIHdhenkgIiA8PCBkb2JiaWUuR2V0V2VpZ2h0KCk8PCAiIGZ1bnRvdyIgPDwgZW5kbDsKCWNoYXIgcmVzcG9uc2U7CgljaW4gPj4gcmVzcG9uc2U7CglyZXR1cm4gMDsKfQ==