#include <iostream>
#include <string>
using namespace std;
class MachinePets{
public:
MachinePets(const string s):nickname(s){};
string getNickname();
virtual string talk()=0;
private:
string nickname;
};
string MachinePets::getNickname(){
return nickname;
}
class PetCats:public MachinePets{
public:
PetCats(const string s):MachinePets(s){};
string talk();
};
string PetCats::talk(){
return "miao wu~";
}
class PetDogs:public MachinePets{
public:
PetDogs(const string s):MachinePets(s){};
string talk();
};
string PetDogs::talk(){
return "wang wang~";
}
void play(MachinePets * ptr){
cout<<ptr->getNickname()<<" says "<<ptr->talk()<<endl;
}
int main(){
PetCats cat("miku");
PetDogs dog("da huang");
play(&cat);
play(&dog);
return 0;
}

浙公网安备 33010602011771号