我非常困惑自己到了不归路的地步,并且觉得我的项目太庞大,无法跟上我目前的方式。有很多GUI屏幕的程序的设计方法
简而言之:
1)有许多图形屏幕(窗口),每个屏幕在其自己的.cpp定义与所附的.h头瓦特/公共&私有减速的类。
2)我正在使用FLTK GUI工具包,所以当我离开一个屏幕时,我会对其调用“hide()”,我假设它是垃圾收集,然后创建一个新的任何屏幕实例跟随。我的问题是,如果一个屏幕(屏幕A可以调用它)创建另一个屏幕(屏幕B),那么我必须在屏幕A中包含屏幕B的头文件,并且在屏幕A中创建一个屏幕B的全局指针的.cpp。
即。屏幕A的一个伪编码器
#include "screenb.h"
ScreenB* screenb_ptr; // global
...
Bunch of Code, constructors, deconstructors, etc
...
void ScreenA::exit_and_make_screen_b()
{
ScreenA.hide();
screenb_ptr = new ScreenB();
}
这是最好的方法吗?我觉得它很sl((还有一个内存泄漏?),我应该有一个类似于.cpp/.h的虚拟内存来跟踪一堆extern-qualified指针;特别是因为有时我必须返回/前进屏幕(即可以从其他多个屏幕跳回到主菜单屏幕)。任何建议表示赞赏!
好吧,我想这样做
哦,谢谢:) – jparanich 2011-03-23 17:13:50
你可能会考虑让somevar成为枚举。然后,您可以将枚举值传递给构造函数(或导入函数)。窗口管理器内部的case语句可能是好的,因为您已将您的屏幕抽象为单个管理器。如果您需要*进一步抽象,可能会查看工厂设计模式。 – 2011-03-23 17:35:48