#include<iostream>
using namespace std;
class poser
{
public:
virtual void beat()const {cout<<"一般选手的力量260磅"<<endl;}
protected:
int age;
};
class Ali:public poser
{
public:
void beat()const{cout<<"阿里一拳的力量为420磅"<<endl;}
};
class Lewis:public poser
{
public:
void beat()const{cout<<"刘易斯一拳的力量为480磅"<<endl;}
};
class Tyson:public poser
{
public:
void beat()const{cout<<"泰森一拳的力量为500磅"<<endl;}
};
class Holy:public poser
{
public:
void beat()const{cout<<"霍利菲尔德一拳的力量为350磅"<<endl;}
};
int main()
{
poser *p[5];
poser *p1;
int choice,i;
for (i=0;i<5;i++)
{
cout<<"(1)阿里(2)刘易斯(3)泰森(4)霍利菲尔德"<<endl;
cin>>choice;
switch(choice)
{
case 1:p1=new Ali;
break;
case 2:p1=new Lewis;
break;
case 3:p1=new Tyson;
break;
case 4:p1=new Holy;
break;
default:
p1=new poser;
break;
}
p[i]=p1;
p[i]->beat();
}
return 0;
}//不能预先知道调用哪个对象的函数,指针在输入某个数时才指向某个对象,这叫动态级联。虽然可以动态追踪对象,
//灵活性比较强,但速度比较慢。一个函数被说明为虚函数,在派生中覆盖了该函数,那么该函数也是个虚函数。
【c++程序】拳击游戏
最新推荐文章于 2024-02-17 20:17:44 发布