c++ / day05

1. 整理思维导图

2. 全局变量,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 attck;

public:
    //constructor without param
    Hero(){}

    //constructor with param
    Hero(string name, int attck):name(name), attck(attck)
    {}
    virtual void atk()
    {
         cout << "Hero attck" <<endl;
        blood -= 0;
    }
};

class Mage: public Hero
{
    int ap_atk=50;
public:
    Mage(string name, int attck):Hero(name, attck)
    {
        cout << "Mage constructor with 4 params" <<endl;
    }
    void atk()
    {
          cout << "Mage attck" <<endl;
        blood -=(attck + ap_atk);

    }


};

class Archer: public Hero
{
    int ac_atk=100;

public:
    Archer(string name,  int attck):Hero(name, attck)
    {
         cout << "Archer constructor with 4 params" <<endl;
    }
      void atk()
    {
          cout << "Archer attck" <<endl;
        blood -= attck+ac_atk;

    }


};

int main()
{

   Mage mage("Tang seng", 100);
   Archer archer("Wu kong", 200);

   Hero *pm = &mage; //parent point -->child
   Hero *pa = &archer; //parent point -->child
   int count_m = 0;
   int count_a = 0;

   while(1)
   {
       pm->atk();
       count_m++;
       if(blood <=0)
       {
           break;
       }
       pa->atk();
       count_a++;
       if(blood <=0)
       {
           break;
       }

   }
   cout << "Mage attck = "<<count_m <<endl;
   cout << "Archer attck = "<<count_a <<endl;
    return 0;
}

运行结果

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XML解析器来解析XML文件,使用C语言自带的字符串解析函数,比如strtok等。首先,需要打开XML文件并逐行读取,将每一行保存为一个字符串。然后,使用字符串解析函数解析每个标签和其对应的属性和值。可以使用栈结构来处理标签的嵌套关系,以便构建XML树形结构。最后,将XML树状结构打印出来。 具体的实现方法包括以下步骤: 1. 打开XML文件并逐行读取,将每一行保存为一个字符串。 2. 解析每个标签的开头和结尾,以及对应的属性和值。在解析属性和值时,需要考虑属性值可能带有单引号或双引号的情况,需要使用一些技巧来判断。 3. 使用栈来处理标签的嵌套关系,以便构建XML树形结构。具体来说,遇到一个标签的开头时,就将该标签入栈;当遇到一个标签的结尾时,就将栈顶元素弹出,表示该标签的嵌套关系已经结束。 4. 将构建好的XML树状结构打印出来,可以使用递归方式遍历XML树,输出每个标签及其对应的属性和值。 需要注意的一些问题包括: 1. 在解析属性和值时,需要考虑属性值可能包含单引号或双引号的情况。可以使用一个标记来判断当前属性值使用的是哪种引号。 2. 在使用栈处理XML的嵌套关系时,需要判断栈是否为空,以免发生栈溢出等错误。 3. 在输出XML树的时候,可以使用一些格式化的方式,让输出结果更易读。 最后,需要注意的是,手动解析XML文件是一项相对较为复杂的工作,需要考虑到很多细节和特殊情况。因此,如果可以使用开源的XML解析库,会更加方便和可靠。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值