全局变量,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>
//int monster = 10000;
int blood = 10000;
using namespace std;
class hero
{
protected:
string name;
int hp;
int attck;
public:
hero(){}//无参构造
hero(string name,int hp,int attck):name(name),hp(hp),attck(attck){}//有参构造
virtual void Atk(){blood-=0;}
};
class apc:public hero
{
int ap_atk=50;
public:
apc(string name,int hp,int attck):hero(name,hp,attck){}//构造
void Atk(){blood-=(attck+ap_atk);}
};
class adc:public hero
{
int ac_atk=100;
public:
adc(string name,int hp,int attck):hero(name,hp,attck){}//构造
void Atk(){blood-=(attck+ac_atk);}
};
int main()
{
apc ap("a",0,50);
adc ad("b",0,100);
hero *p=≈
hero *q=&ad;
int number = 0;
while(blood>0)
{
p->Atk();
q->Atk();
number++;
}
cout << "number= " << number <<endl;
return 0;
}
效果图: