每日C++ 5.28dddd
每日一练
效果:
代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
using namespace std;class Hero{int atk;//攻击int def;//防御int spd;//攻速int hp;//血量public:Hero(int a=10,int b=10,int c=10,int d=10):atk(a),def(b),spd(c),hp(d){}int getAtk(){return atk;}int getDef(){return def;}int getSpd(){return spd;}int getHp(){return hp;}void setAtk(int val){atk = val;}void setDef(int val){def = val;}void setSpd(int val){spd = val;}void setHp(int val){hp = val;}virtual void equip(){}void show(){cout << "当前英雄状态值:" << endl;cout << "攻击: " << atk <<endl;cout << "防御: " << def <<endl;cout << "攻速: " << spd <<endl;cout << "血量: " << hp <<endl;}
};class Lword:public Hero{public:void equip(){setAtk(getAtk()+1);setSpd(getSpd()+1); cout << "装备上 长剑" << endl;}
};class Sword:public Hero{public:void equip(){setAtk(getAtk()+1);setHp(getHp()+1); cout << "装备上 短剑" << endl;}};class Ax:public Hero{public:void equip(){setAtk(getAtk()+1);setDef(getDef()+1); cout << "装备上 斧头" << endl;}
};void putOn(Hero* h){h->equip();
}int main(int argc, const char *argv[])
{Hero * le = new Lword;putOn(le);le->show();delete le;cout << endl;Hero* se = new Sword();putOn(se);se->show();delete se;cout << endl;Ax ax;putOn(&ax);ax.show();return 0;
}