我非常困惑自己到了不歸路的地步,並且覺得我的項目太龐大,無法跟上我目前的方式。有很多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