问题及代码:
1.main.cpp
#include <iostream> #include "game.h" using namespace std; int main() { Role mary("Mary",500,"Tulong",200); Role jack("Jack",10,"Yitian",180); cout<<"---begin---"<<endl; mary.show(); jack.show(); cout<<"---1st round---"<<endl; jack.attack(mary); mary.show(); jack.show(); cout<<"---2nd round---"<<endl; mary.attack(jack); mary.show(); jack.show(); cout<<"---end---"<<endl; return 0; }
2.role.cpp
#include <iostream> #include "game.h" using namespace std; Role::Role(string nam,int b,string wnam,int f):name(nam),blood(b),weapon(wnam,f) { if(blood>0) life=true; else life=false; } Role::~Role() { cout<<name<<"退出江湖..."<<endl; } void Role::eat(int d) { if(isAlived()) blood+=d; } void Role::attack(Role &r) { if(isAlived()) { blood+=weapon.getForce(); r.blood-=weapon.getForce(); if(r.blood<=0) r.life=false; } } bool Role::isAlived() { return life; } void Role::show() { cout<<name<<" "<<"has "<<blood<<" "<<"blood,it is "; if(isAlived()) cout<<"alived."; else cout<<"dead."; cout<<endl; }
3.weapon.cpp
#include <iostream> #include "game.h" using namespace std; Weapon::Weapon(string wnam,int f):wname(wnam),force(f){} int Weapon::getForce() { return force; }
4.game.h
#ifndef GAME_H_INCLUDED #define GAME_H_INCLUDED using namespace std; class Weapon { public: Weapon(string wnam,int f); int getForce(); private: string wname; int force; }; class Role { public: Role(string nam,int b,string wnam,int f); ~Role(); void eat(int d); void attack(Role &r); bool isAlived(); void show(); private: string name; int blood; Weapon weapon; bool life; };
运行结果:
知识点总结:
从这个程序中我们可以学习到多文件处理程序的方法。
学习心得:
首先要注意的是建立新文件时要勾选debug,其次要注意的是,程序中的头文件要如何添加,没必要都写进去,需要什么写什么。