多文件组织角色类

来源:互联网 发布:sql语句统计记录数量 编辑:程序博客网 时间:2024/06/02 01:11

main.cpp


#include<iostream>#include"shengming.h"using namespace std;int main(){    Role James("james",8,2,"east","Man","TULONG",2);    Role Curry("curry",7,3,"west","Feman","YITIAN",3);    James.show();    Curry.show();    Curry.attack(James);    James.beAttack(Curry);    James.eat(5);    James.attack(Curry);    James.range1();    Curry.range1();    James.show();    Curry.show();    return 0;}


shengming.h


#ifndef SHENGMING_H_INCLUDED#define SHENGMING_H_INCLUDEDusing namespace std;class Weapon{public:    Weapon(string wnam, int f);    int getForce();    void setdata();    void showdata();private:    string wname;   //名称    int force;       //威力};class Role{public:    Role(string name,int blo,int ran,string  nati,string  se,string wnam,int forc);//构造函数    ~Role();     void show();     void attack(Role&r);     void eat(int medicine);     void beAttack(Role&r);     void range1();private:    string name;    int blood;    bool life;    int range;    string  nation;    string  sex;    Weapon weapon;};#endif // SHENGMING_H_INCLUDED

weapon.cpp


#include<iostream>#include"shengming.h"using namespace std;Weapon::Weapon(string wnam, int forc):wname(wnam),force(forc) {}int Weapon::getForce(){    return force;}void Weapon::setdata(){     std::cout << "请输入武器的名字、威力:" << std::endl;     std::cin >> wname >> force;}void Weapon::showdata(){    std::cout<<"武器名称 "<<wname <<"威力 "<<force<<std::endl;}


role.cpp


#include<iostream>#include"shengming.h" using namespace std; Role::Role(string nam,int blo,int ran,string  nati,string  se,string wnam,int forc):name(nam),blood(blo),range(ran),nation(nati),sex(se),weapon(wnam,forc)    {         if(blood>0)    life=true;     else         life=false;    }    Role::~Role()    {        std::cout<<name<<"已经退出江湖..."<<std::endl;    }     void Role::show()    {     cout<<name << "has" << blood << "blood " <<range << "级 " <<nation << "族 " <<sex <<endl;      if(blood>0)    life=true;     else         life=false;     weapon.showdata();    }    void Role::attack(Role &r)    {         blood+=weapon.getForce();         r.blood-=weapon.getForce();         if(r.blood<=0)             r.life=false;    }    void Role::beAttack(Role&r)    {        blood-=weapon.getForce();        r.blood+=weapon.getForce();        if(blood<=0)             life=false;    }    void Role::eat(int medicine)    {        blood+=medicine;    } void Role::range1()     {         if(blood>=10)         range+=1;     }


运行结果:



0 0