摘要: 问题来源:假设正在编写一个小游戏,游戏的背景是发生在太空,有宇宙飞船、太空船和小行星,它们可能会互相碰撞,而且其碰撞的规则不同,如何用C++代码处理物体间的碰撞。代码的框架如下: 1 class GameObject{...}; 2 class SpaceShip:public GameObject{...}; 3 class SpaceStation:public GameObject{...}; 4 class Asteroid:public GameObject{...}; 5 6 void checkForCollision(GameObject& obj1,GameObjec 阅读全文
posted @ 2012-08-23 17:41 一点心青 阅读(646) 评论(0) 推荐(0) 编辑
摘要: C++,当有一个指针或引用,但是不知道其指向对象的真实类型是什么时,可以调用虚函数完成特定类型对象的行为。但是有时候,我们需要根据不同的数据构造不同的对象类型,相当于虚拟的构造函数。1.虚拟构造函数 虚拟构造函数是指能够根据输入给穹的数据的不同而建立不同类型的对象。虚拟构造函数可应用于从磁盘(或者通网络连,或者从磁带机上)读取对象信息构造不同类型对象。例如需要编写一个程序,用业进行新闻报道的工作,每一条新闻报道都由文字或图片组成。其具体实现代码如下: 1 class NLComponet 2 { 3 public: 4 ... 5 }; 6 7 class TextBlock:... 阅读全文
posted @ 2012-08-23 16:14 一点心青 阅读(1937) 评论(0) 推荐(0) 编辑
摘要: 问题来源:假设系统中只有一台打印机,如何把打印机对象数止限定为一个。或者系统只提供16个可分发出去的文件描述符,如何确保文件描述符对象存在的数目不能超过16个。在具体的应用过程中,我们可能需要限制某个类所产生的对象数量。下面我们先从简单的问题的开始。1.如何允许建立零个对象? 实例化一个对象时,将调用一个构造函数,因而阻止建立某个类的对象,最容易的方法就是把该类的构造函数声明在类的private域。代码示例如下:1 class CantBeInstantiated 2 {3 private:4 CantBeInstantiated();5 CantBeInstantiated... 阅读全文
posted @ 2012-08-23 14:37 一点心青 阅读(2179) 评论(0) 推荐(1) 编辑