1.全局变量,int monster = 10000;定义英雄类hero,受保护的属性string name,int hp,int attck;公有的无参构造,有参构造,虚成员函数 void Atk(){blood-=0;},法师类继承自英雄类,私有属性 int ap_atk = 50;重写虚成员函数void Atk(){blood-=(attck+ap_atk);},射手类继承自英雄类,私有属性 int ac_atk = 100;重写虚成员函数void Atk(){blood-=(attck+ac_atk);},实例化类对象,判断怪物何时被杀死。
代码实现:
#include <iostream>
using namespace std;
//全局变量
int monster = 10000;
//英雄类
class Hero
{
protected:
string name;
int hp;
int attack;
public:
Hero(){} //无参
Hero(string name,int hp,int attack):name(name),hp(hp),attack(attack){} //有参
//虚函数
virtual void Atk(){monster -= 0;}
};
//法师类
class Ap:public Hero
{
int ap_atk = 50;
public:
Ap(){}
Ap(string name,int hp,int attack,int ap_atk):Hero(name,hp,attack),ap_atk(ap_atk){}
void Atk() //函数重写
{
monster-=(attack+ap_atk);
}
};
//射手类
class Adc:public Hero
{
int ac_atk = 100;
public:
Adc(){}
Adc(string name,int hp,int attack):Hero(name,hp,attack){}
void Atk() //函数重写
{
monster-=(attack+ac_atk);
}
};
int main()
{
Ap a1("小法师",1000,100,90);
Adc b1("小炮",1200,120);
int i=0;
while(monster > 0)
{
a1.Atk();
i++;
if(monster > 0)
b1.Atk();
i++;
}
cout<< i << endl;
return 0;
}