海事网站开发2024年重大新闻简短
- 整理思维导图
- 复习课上代码
- 全局变量,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 blood = 10000;class Hero
{
protected:// 英雄的名字string name;// 英雄的血量int hp;// 英雄的攻击力int attck;public:// 无参构造函数Hero() {}// 有参构造函数Hero(string n, int h, int a) : name(n), hp(h), attck(a) {}// 虚函数,用于扣减敌人的血量virtual void Atk() { blood -= 0; }
};class Mage : public Hero
{
private:// 法师的额外攻击力int ap_atk = 50;public:Mage(string n, int h, int a):Hero(n,h,a) {}// 重写父类的虚函数void Atk() override { blood -= (attck + ap_atk); }
};class Archer : public Hero
{
private:// 射手的额外攻击力int ac_atk = 100;public:Archer(string n, int h, int a):Hero(n,h,a){}// 重写父类的虚函数void Atk() override { blood -= (attck + ac_atk); }
};int main() {// 创建法师对象Mage mage1("Alice", 100, 100);// 创建射手对象Archer archer1("Bob", 100, 100);// 攻击怪物,直到怪物的血量降为 0int s=0;while (blood > 0){mage1.Atk();if(blood>0){archer1.Atk();}s++;}// 输出杀死怪物信息cout <<s<<"秒杀死怪物"<<endl;return 0;
}