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++的基础知识点,涵盖面向对象编程(OOP)、内存管理、模板与泛型编程以及标准库(STL)等内容。首先讲解了C++的面向对象特性,包括封装、继承和多态。接着讨论了内存管理,涉及动态内存...
c++编程 C++面向对象多线程编程 c++标准程序库
《面向对象程序设计:C++语言描述(原书第2版)》内容丰富,结构合理,写作风格严谨,深刻地论述了c++语言的面向对象编程的各种技术,主要内容包括:面向对象编程方法、c++语言的各种特性、stl、c++输入/输出流、mfc等。...
面向对象编程(Object-Oriented Programming,简称OOP)是一种重要的编程范式,它通过将数据和操作数据的方法封装在对象中,实现了程序设计的模块化和抽象化。本教程对比了两种广泛应用的面向对象语言——C++和Java...
本书以帮助读者掌握C++面向对象高效编程方法为目的,详细介绍了C++编程中的各种概念和应用技巧。全书共分为两部分,第一部分介绍面向对象编程的基础和应用;第二部分说明了如何建立抽象的概念及其策略,并研究了C++...
C++的面向对象编程主要包括三个核心概念:封装、继承和多态。 1. 封装:封装是面向对象编程的基础,它允许我们将数据和操作数据的方法捆绑在一起,形成一个独立的单元——类。在C++中,通过访问控制修饰符(如...
《C++面向对象程序设计》是C++编程领域的一本经典教材,由清华大学出版社出版,龚晓庆、付丽娜等多位专家共同编著。这本书深入浅出地讲解了C++语言的核心概念,特别是面向对象编程(OOP)的思想和技术。第二版在第一...
《Visual C++ 面向对象编程教程——王育坚》是一本专为学习MFC(Microsoft Foundation Classes)和面向对象编程技术而设计的教学资料。该教程以幻灯片的形式呈现,结合实例与详细的讲解,使得学习过程更为直观且易于...
C++面向对象高效编程 第2版
### 麻省理工免费课程:C语言内存管理和C++面向对象编程 #### 一、C语言简介 在《麻省理工免费课程:C语言内存管理和C++面向对象编程》这一课程中,首先对C语言进行了介绍。C语言是一种历史悠久且功能强大的编程语言...
c++ 面向对象高效编程 是经典的c++入门书籍,学习面向对象的编程的好书籍,目前为止最新一版
C++面向对象高效编程.part1 C++面向对象高效编程.part1 C++面向对象高效编程.part1
C++是一种强大的、通用的编程语言,以其支持面向对象编程(OOP)而闻名。面向对象编程是一种设计和实现软件的方式,它强调将现实世界的问题和解决方案映射到计算机程序中的对象。本资料包“C++面向对象程序设计 经典...
《C++面向对象多线程编程》是一本深入探讨C++编程技术的书籍,尤其侧重于面向对象设计和多线程编程。对于任何希望提升C++技能,尤其是想要在现代软件开发环境中应用并发处理的开发者而言,这本书都是一份宝贵的学习...
本书全面深入地介绍了Delphi 5的集成开发环境、基本编程技巧、项目管理、调试器、Object Pascal语言、动态链接库、与C++共享代码、面向对象编程、VCL的结构、Open Tools API、编写自己的元件和包等内容。Delphi 5是...