#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <string>
using namespace std;
#define A system("pause")
const int sz=10;
class Animal{
protected:
string name;
public:
virtual void speak()=0;
Animal(char* n):name(n){}
};
class dog:public Animal{
public:
dog(char* n):Animal(n){}
virtual void speak(){
cout<<"Woof!I am"<<name<<","<<endl;
}
};
class Bull:public Animal{
public:
Bull(char* n):Animal(n){}
Bull():Animal(""){}
void speak(){
if(name.length()==0){
cout<<"Moo,I am a Bull"<<endl;
}
else{
cout<<"Moo! I am"<<name<<"."<<endl;
}
}
};
int main(){
dog d("goofy");
Bull b("Bill"),b2;
Animal* pa;
for(int i=1;i<=3;i++){
switch(i){
case 1:pa=&d;break;
case 2:pa=&b;break;
case 3:pa=&b2;break;
}
pa->speak();
}
system("pause");
return 0;
}
继承与派生类实例
最新推荐文章于 2023-04-17 09:30:18 发布