全局变量,int monster = 10000;定义英雄类hero,受保护的属性string name,int hp,int attck;公有的无参构造,有参构造,虚成员函数void Ati()blood-=0;},法师类继承自英雄类,私有属性int ap_atk=50;重写虚成员函数void AtKk()Xblood-=(attck+ap_atik);};射手类继承自英雄类,私有属性int ac_atk = 100;重写虚成员函数void Ati()/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){}
~Hero(){}
virtual void Atk()
{
monster -= 0;
}
};
class ap:virtual public Hero
{
private:
int ap_atk = 50;
public:
ap(){}
ap(string name, int hp, int attack,int ap_atk):Hero(name,hp,attack),ap_atk(ap_atk){}
~ap(){}
void Atk()override
{
monster -= (attack + ap_atk);
cout << "剩余hp:" << monster << endl;
}
};
class ac :virtual public Hero
{
private:
int ac_atk = 100;
public:
ac(){}
ac(string name, int hp, int attack, int ac_atk) :Hero(name, hp, attack), ac_atk(ac_atk){}
~ac(){}
void Atk()
{
monster -= (attack + ac_atk);
cout << "剩余hp:" << monster << endl;
}
};
void fun(Hero &h)
{
h.Atk();
}
int main()
{
int count = 0;
for(int i=0;i<monster;i++ )
{
ap ap1("A", 100, 100, 50);
ac ac1("B", 100, 100, 100);
fun(ap1);
fun(ac1);
count++;
monster = monster;
if (monster <= 0)
cout << "Monster has die" << endl;
}
cout << count << endl;
return 0;
}
思维导图