class actor//基类
{
protected:
int m_iHealth;
const int m_iSpeed;//为了方便,这个值使用延时值,越大表示速度越慢
const int m_iHitPoint;
char m_strName[260];
public:
actor(const char* strName,const int iHealth,const int iSpeed,const int iHitpoint);
int& Health(){ return m_iHealth; };
const char* getName(){ return m_strName; };
virtual void hit(actor *Actor) = 0;
bool isAlive();
};
actor::actor(const char* strName,const int iHealth,const int iSpeed,const int iHitpoint):
m_iHealth(iHealth),
m_iSpeed(iSpeed),
m_iHitPoint(iHitpoint)
{
strcpy(m_strName,strName);
}
bool actor::isAlive()
{
return (m_iHealth>0);
}
/////////////////////////////////////////////////////////
//类fighter
class fighter :public actor
{
public:
fighter(const char* strName);
virtual void hit(actor *Actor);
private:
};
fighter::fighter(const char* strName):
actor(strName,100,20,20)
{
}
void fighter::hit(actor *Actor)
{
Sleep(m_iSpeed);
if(!isAlive())
{
return ;
}
if(Actor&&Actor->isAlive())
{
//这里我们用一个函数做了左值,因为函数返回的是引用
if(isAlive())
Actor->Health() = Actor->Health() - m_iHitPoint;
}
}
/////////////////////////////////////////////////////////
//类knight
class knight :public actor
{
public:
knight(const char* strName);
virtual void hit(actor *Actor);
private:
};
knight::knight(const char* strName):
actor(strName,150,20,25)
{
}
void knight::hit(actor *Actor)
{
Sleep(m_iSpeed);
if(!isAlive())
{
return ;
}
if(Actor&&Actor->isAlive())
{
if(isAlive())
Actor->Health() = Actor->Health() - m_iHitPoint;
}
}
/////////////////////////////////////////////////////////
//类warrior
class warrior :public actor
{
public:
warrior(const char* strName);
virtual void hit(actor *Actor);
private:
};
warrior::warrior(const char* strName):
actor(strName,150,20,25)
{
}
void warrior::hit(actor *Actor)
{
Sleep(m_iSpeed);
if(!isAlive())
{
return ;
}
if(Actor&&Actor->isAlive())
{
if(isAlive())
Actor->Health() = Actor->Health() - m_iHitPoint;
}
}
|
相关推荐
C++面向对象高效编程C++面向对象高效编程C++面向对象高效编程C++面向对象高效编程
c++:面向对象程序设计(李涛编)全部单元讲义,包含各单元例题。
在次有大量的关于c++面向对象编程的实例 对于初级的学习者有很大的帮助
c++编程 C++面向对象多线程编程 c++标准程序库
Chapter 12 - Overloading Operators in C++ Chapter 13 - Generics and Templates Chapter 14 - Modeling Diagrams for OO Programs Chapter 15 - Extending Classes Chapter 16 - Multiple Inheritance in C++ ...
c++高级编程 C++面向对象多线程编程 c++标准程序库.pdf
C++教学课件:面向对象发展历史.ppt
C++面向对象高效编程.part1 C++面向对象高效编程.part1 C++面向对象高效编程.part1
matlab面向对象编程.pdf
Java面向对象编程:从C++到Java—理解面向对象
本书全面深入地介绍了Delphi 5的集成开发环境、基本编程技巧、项目管理、调试器、Object Pascal语言、动态链接库、与C++共享代码、面向对象编程、VCL的结构、Open Tools API、编写自己的元件和包等内容。Delphi 5是...
侯捷C++第一门课:面向对象高级编程。对C++初学者有入门作用
鸡啄米:C++编程入门系列之十二(类与对象:面向对象设计的基本思 想和特点) 鸡啄米:C++编程入门系列之十三(类与对象:类的声明、成员的访问 控制和对象) 鸡啄米:C++编程入门系列之十四(类与对象:构造...
C++机房预约系统:面向对象,文件操作,黑马程序员,部分优化,模板
侯捷 C++面向对象编程 侯捷 C++面向对象编程 侯捷 C++面向对象编程
C++面向对象高级编程代码资源及课件.tar.gz
(麻省理工免费课程)C语言内存管理和C++面向对象编程,学习的好资料
C++面向对象程序设计C++面向对象程序设计C++面向对象程序设计C++面向对象程序设计C++面向对象程序设计