11 2011 档案
摘要:读起C++对象模型,有点吃力。真的很吃力。。P140C++支持三种类型的成员函数:static,nonstatic,virtual.P141C++的设计准则之一就是:nonstaic member function至少必须和一般的nonmember function有相同的效率。在设计上为了支持这一准则,编译器内部已将"member 函数实体"转换为对等的"nonmember 函数实体"。下面是转化的步骤1. 改写函数的signature(意指函数原型)以安插一个额外的参数到member function中,用以提供一个存取管道,使class objec
阅读全文
摘要:NetDemo中,通过使用GM管理组件的形式来组织整个游戏,其中整个游戏走向逻辑处理基本集中在GameLogicComponent里面,现把代码分析如下:
阅读全文
摘要:看一些开源库,里面好多类有一个**IMPL。经查询还是有些门道和说法的。查询了一些相关资料。(英文没有翻译,挺简单的。)PIMPL 也可以称为一种设计模式了。现在摘录如下:pimpl 手法在 C++ 里已是“高手”们广泛运用的成熟方法之一,它的优点很多,诸如降低编译依赖、提高重编译速度之类的工具性优势自不待赘言,而其对“保持接口稳定性”的优点更值得称道。It makes it possible to avoid other classes to know internal data structures and other information of the class. It also s
阅读全文
摘要:最近,项目组让搞一个读取xml配置文件的数据库连接信息的功能。 一开始准备使用tinyxml,或者rapidxml。没注意delta3d的读取xml信息的类。 后来发现,delta3d中读取xml的类,是对xecres的一些二次封装,专门读delta3d的地图,里面含有角色代理之类的。对于读取自己的数据库连接信息不太方便。就准备用delta3d自带的xecres开源库,自己写一个。一开始以为xecres的资料应该很多,后来发现都不太完整,结合网上的一些实例。搞了二天,终于出了一版读取自己xml的一个类。写下来,以便记忆。如后来有改善,就不断更新。代码如下:头文件:#include <xe
阅读全文
摘要:C++在“商业应用”方面,曾经是天下第一的开发语言,但这一桂冠已经被java抢走多年。因为当今商业应用程序类型,已经从桌面应用迅速转移成Web应 用。当Java横行天下之后,MS又突然发力,搞出C#语言,有大片的曾经的C++程序员,以为C++要就此沉沦,未料,这三年来,C++的生命力突然被 严重地增强了。主力原因就是开源的软件、基础软件(比如并发原生支持,比如Android必定要推出原生的SDK)、各种跨平台应用的出现。开源C++库必须具有以下特点:必须是成熟的产品、跨平台的产品、相对通用的库。一、通用标准类STL:C++标准模板库,呵呵,它也是开源的嘛。boost:C++准标准库,它是强大地
阅读全文
摘要:这个问题困惑好几天了。废话不多说,先上代码。 1 #include <iostream> 2 using namespace std; 3 4 class A 5 { 6 public: 7 virtual void aa() 8 { 9 } 10 private: 11 char k[3]; 12 }; 13 14 class B:public A 15 { 16 public: 17 virtual void bb() 18 { 19 } 20 privat...
阅读全文
摘要:下列情况,为了让程序顺利编译,必须使用成员初始化表。1、当初始化一个reference member时; 2、当初始化一个const member时; 当类成员中含有一个const对象时,或者是一个引用时,他们也必须要通过成员初始化列表进行初始化,因为这两种对象要在声明后马上初始化,而在构造函数中,做的是对它们的赋值,这样是不被允许的。 3、当调用一个base class的constructor,而它拥有一组参数时; 4、当调用一个member class的constructor,而它拥有一组参数时;list中的项目执行次序是由class中的members 的声明次序决定的,不是由initia
阅读全文
摘要:前言:纠结了很长时间,remote actor(模拟本地actor的行为) 到底如何创建的呢?是自己手动,抑或是系统自动创建?由于delta3d,本身的说明文档少之又少,而其自带的demo 也没有这方面的应用。Oman大哥和我通过跟踪基于delta3d的开源类库SimCore中的例子netdemo,了解到 这些是通过对本地的actor的稍加些属性,就可以由系统自动创建。正文:用到的主要类库:dtGame、dtDAL,相关类:GameManager、GMComponent、GameActor、GameActorProxy。不懂的请仔细看下delta3d官网自带的说明文档(末尾的qq群共享里也有O
阅读全文