01.02作业

  1. 整理思维导图
  2. 复习课上代码
  3. 全局变量,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);}实例化类对象,判断怪物何时被杀死。(能写多少写多少)

01.02作业_第1张图片

01.02作业_第2张图片

  

#include 
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);
    // 攻击怪物,直到怪物的血量降为 0
    int s=0;
    while (blood > 0)
    {
        mage1.Atk();
        if(blood>0)
        {
            archer1.Atk();
        }
        s++;
    }
        // 输出杀死怪物信息
    cout <

你可能感兴趣的:(c++)