友元族的实现
来源:互联网 发布:宋慧乔 知乎 编辑:程序博客网 时间:2024/06/03 18:41
/******************************************************************** 文件名 : TimeEvtCenter.h 创建人 : Clark/陈泽丹 创建时间 : 2012-5-7 描述: 友元族的实现 后面进一步, 会把友元族触碰函数用双分派的方法实现反射 *********************************************************************/ #include <iostream>using namespace std;class NPC{public:NPC():HP(100),Armor(2){}void Show(){ cout<<HP<<endl; cout<<Armor<<endl; }private:int HP;int Armor;template<int v>friend class HitRetsult;};class Magic{public:Magic():Hurt(20){}private:int Hurt;template<int v>friend class HitRetsult;};class Item{public:Item():Armor(3){}private:int Armor;template<int v>friend class HitRetsult;};template<int v>class HitRetsult;const int NPC_MAGIC = 0;template<>class HitRetsult<NPC_MAGIC>{public:void operator() (NPC* _pNpc, Magic* _pMagic){_pNpc->HP = _pNpc->HP - _pMagic->Hurt;}};const int NPC_ITEM = 1;template<>class HitRetsult<NPC_ITEM>{public:void operator() (NPC* _pNpc, Item* _pItem){_pNpc->Armor = _pNpc->Armor + _pItem->Armor;}};void main(){NPC npc;Magic magic;Item item;npc.Show();HitRetsult<NPC_MAGIC> hitMagic;hitMagic(&npc, &magic);npc.Show();HitRetsult<NPC_ITEM> hitItem;hitItem(&npc, &item);npc.Show();system("pause"); }
- 友元族的实现
- 三子棋的实现的实现的实现
- JAVA实现的时钟实现
- 模态框的的实现
- 杀毒软件的简单实现的简单实现
- android的实现电话号码的实现
- 音频的实现音乐声音的实现
- malloc的实现、内存池的实现
- 异形窗体的实现
- 个性化的分页实现
- ASP数据库连接的实现
- Struts单选框的实现
- 梅西迭代算法的实现
- 翻页功能的实现
- Struts,MVC 的实现
- 实现JavaScript的继承
- 接口的显示实现
- TTerm的实现( 一)
- sqlite和apk一起打包分析
- Oracle有关表的四种连接方式讲解
- chapter1 数据库的设计---4设计数据库的步骤
- 网关 简介
- 对比Windows OOP与Cocoa MVC
- 友元族的实现
- 16个桌面Linux用户必须要知道的Shell命令
- 想学seo的进来瞅瞅吧
- 过滤所有html标签的属性的正则表达式
- low memory killer
- 实用的JS正则表达式 (正数正则、IP正则、邮编正则等)
- 一个php操作数据库的封装类,超实用.
- ubuntu登陆root用户
- IP数据报如何分段到达目的之后如何重组