我现在做飞行棋游戏(仿照QQ里的)
现在设计了一个CRoad类,一个CPlane类.
这两个单独的类,
可是飞机要在道路上飞行,各种动作如果在CPlane实现,那要用到CRoad中的数据.
不知道怎么设计这些类,及他们之间的关系.
是否要需要其他的类
现在设计了一个CRoad类,一个CPlane类.
这两个单独的类,
可是飞机要在道路上飞行,各种动作如果在CPlane实现,那要用到CRoad中的数据.
不知道怎么设计这些类,及他们之间的关系.
是否要需要其他的类
解决方案 »
- MDI程序在多个子窗口的情况下如何控制在具体的哪个子窗口中显示
- 关于编辑框的问题
- 如何对服务器进行压力测试?
- CHtmlView类作二分视图出错
- pirntf语句没有执行
- 请教一个基础问题:WORD *a; 那么 a[0],a[1]...又分别代表什么意思呢?
- 怎样用SendMessage函数向窗口发一个组合键消息(如Alt + F)?
- VC连接数据库
- 在install shield中,如何将 targetdir中的值写到注册表中去?
- 在开发作图类程序时,有大量的交互操作,如何规化程序结构???????
- 有个问题请教 , 我在.net声明了全局变量,在那个项目中的类的成员函数中改变该值时,提示无法识别那个变量!
- cximage类库使用的问题
恩,不错,我早几个星期写的纸牌类感觉很奇怪,这次还是先搞清楚再写代码.
当需要用到另一个类时,一般传递this指针
當你在寫作一個程式的時候,等於是在將你對某些問題的答案加以具體化
。而你的程式對於這些解答,能夠越直接的對應越好。 *假如你能將它看成一個單獨的想法,就把它做成一個class
*假如你能將它看成一個單獨的實體,就把它做成某class的物件
*若兩個class有共同的地方,就把共同的部份做成兩個class的
superclass
*若這個class是物件的container,將這class的共同行為做成
template 不怎麼做才是一個好的物件導向程式?
當你在定義一個class的時候,若你不是在寫一個有關數學的東西,如複數
、矩陣等,或是一些低階的型別,如連結串列時:
*不要使用整體變數
*不要使用非成員函式
*不要將物件資料公開
*不要使用夥伴,除非是為了避免前三點
*勿直接存取另一個物件的內部資料
*不要在內部資料中加上型別的變數,應用虛擬函式來完成
*不要使用行內展開函式
然后定义了CPlane的实例,但是,当我在Plane.h中include "Road.h"时,本来想在Plane.h中定义CRoad的指针
但是 出现 "possible infinite recursion"可能无限递归错误
:m_Plane0(this,0,2),
m_Plane1(this,1,2),
m_Plane2(this,2,2),
m_Plane3(this,3,2)通过了,不过通过构造函数传递有警告,不知道是否可以
\Road.cpp(14) : warning C4355: 'this' : used in base member initializer list
\Road.cpp(15) : warning C4355: 'this' : used in base member initializer list
\Road.cpp(16) : warning C4355: 'this' : used in base member initializer list
\Road.cpp(17) : warning C4355: 'this' : used in base member initializer list
放到Plane.cpp中就可以了因为在plane中只需要CRoad的指针所以在头文件中不需要include "Road.h"但是在cpp文件中,因为要实现road的功能,所以把include "Road.h"
放到cpp文件中