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++与Java比较教程》详细比较和对比了当今最流行的两种编程语言C++和Java,旨在教授互联网时代至关重要的技能和面向对象编程技术。作者Avinash C. Kak凭借其成功教授的课程,撰写了一本全面的...
《C++面向对象编程实例大全》是一本专为初级学习者设计的教程,旨在通过丰富的实例深入浅出地讲解C++的面向对象编程概念。面向对象编程(Object-Oriented Programming,简称OOP)是C++的核心特性,也是现代软件开发...
《C++:面向对象程序设计》是李涛编著的一部深入探讨C++编程的教材,主要关注面向对象编程的概念和技术。本讲义包含了多个章节的内容,覆盖了从基础到高级的C++特性,旨在帮助学习者掌握面向对象编程的核心理念。 ...
c++编程 C++面向对象多线程编程 c++标准程序库
面向对象编程(Object-Oriented Programming,简称OOP)是一种重要的编程范式,它通过将数据和操作数据的方法封装在对象中,实现了程序设计的模块化和抽象化。本教程对比了两种广泛应用的面向对象语言——C++和Java...
c++高级编程 C++面向对象多线程编程 c++标准程序库.pdf
面向对象编程(Object-Oriented Programming,简称OOP)是一种重要的编程范式,它通过将数据和操作数据的方法封装在对象中,实现了代码的模块化和重用性。本教程聚焦于C++和Java这两种广泛使用的OOP语言的比较,旨在...
C++的面向对象编程主要包括三个核心概念:封装、继承和多态。 1. 封装:封装是面向对象编程的基础,它允许我们将数据和操作数据的方法捆绑在一起,形成一个独立的单元——类。在C++中,通过访问控制修饰符(如...
《C++面向对象高效编程》是一本深入探讨C++编程技术的著作,由Kayshav Dattatri撰写,中文版的PDF格式使得国内读者能够更好地理解其内容。这本书主要聚焦于利用C++的面向对象特性进行高效编程,是C++程序员提升技能...
《Visual C++ 面向对象编程教程——王育坚》是一本专为学习MFC(Microsoft Foundation Classes)和面向对象编程技术而设计的教学资料。该教程以幻灯片的形式呈现,结合实例与详细的讲解,使得学习过程更为直观且易于...
《C++面向对象程序设计》是C++编程领域的一本经典教材,由清华大学出版社出版,龚晓庆、付丽娜等多位专家共同编著。这本书深入浅出地讲解了C++语言的核心概念,特别是面向对象编程(OOP)的思想和技术。第二版在第一...
### 麻省理工免费课程:C语言内存管理和C++面向对象编程 #### 一、C语言简介 在《麻省理工免费课程:C语言内存管理和C++面向对象编程》这一课程中,首先对C语言进行了介绍。C语言是一种历史悠久且功能强大的编程语言...
C++面向对象高效编程.part1 C++面向对象高效编程.part1 C++面向对象高效编程.part1
《C++面向对象多线程编程》是一本深入探讨C++编程技术的书籍,尤其侧重于面向对象设计和多线程编程。对于任何希望提升C++技能,尤其是想要在现代软件开发环境中应用并发处理的开发者而言,这本书都是一份宝贵的学习...
本书全面深入地介绍了Delphi 5的集成开发环境、基本编程技巧、项目管理、调试器、Object Pascal语言、动态链接库、与C++共享代码、面向对象编程、VCL的结构、Open Tools API、编写自己的元件和包等内容。Delphi 5是...
C++是支持面向对象编程的主流编程语言之一,以其强大的功能和灵活性而备受赞誉。本教程深入剖析了面向对象机制,以及C++的语法细节和使用规则,旨在帮助程序员全面理解和掌握C++编程。 在C++中,面向对象主要体现在...
鸡啄米:C++编程入门系列之十二(类与对象:面向对象设计的基本思 想和特点) 鸡啄米:C++编程入门系列之十三(类与对象:类的声明、成员的访问 控制和对象) 鸡啄米:C++编程入门系列之十四(类与对象:构造...
面向对象程序设计是计算机科学中的一个重要概念,C++语言是其广泛应用的语言之一。谭浩强教授的《面向对象程序设计》是一本深受学生和初学者欢迎的教材,它详细介绍了C++的基础和面向对象编程的核心概念。这个压缩包...
C++的面向对象特性是其强大之处。类和对象是面向对象编程的核心,类定义了对象的属性和行为,而对象是类的实例。封装、继承和多态是面向对象的三大特性。封装将数据和操作数据的方法捆绑在一起,保护数据不受外部...
《Visual C++面向对象程序设计教程与实验(第三版)》是一本深入讲解C++编程技术,特别是结合Microsoft Visual C++开发环境的教材。面向对象编程(Object-Oriented Programming, OOP)是C++的核心特性,通过封装、...