C 物件導向(七)設計乙個選單功能的思想

2021-09-22 07:46:13 字數 792 閱讀 5027

//選單類

class menu

void login();

void register();

void exit();

void run();

};

設計實現乙個低耦合的,方便新增功能的介面:

typedef enum

entype;

typedef void (menu:: *pfunc)(); /執行類成員方法的函式指標

typedef struct _funcmap

funmap;

//定義乙個功能陣列

funmap fm = , ,

};//如果需要新增介面,直接到這裡新增,就不用修改其他的**結構

使用的時候這樣使用:

void menu::run()

} }}

總結:

實際上上述部分,第一考慮會將它設計成switch case語句,但是這樣設計會有很多的問題,比如新增或者刪除的時候會「大出血」。

所以我們設計成table driver的方式,為以後的開發奠定基礎。

如何定義和使用類成員方法的函式指標,參考c++物件導向(5)文章

物件導向把握乙個重要的設計經驗

誰擁有資料,誰就對外提供操作這些資料的方法。例子 1 人在黑板上畫圓 person blackboard circle draw x,y 寫在circle中 2 列車司機緊急剎車 3 售貨員統計收穫小票的金額 4 你把門關上了 5 球從繩子上一邊移動到另一邊。class ball public vo...

乙個超時功能的設計

有乙個產品需求,需要執行某個動作之後,需要生成乙個超時的任務,在超時時間到了之後執行後續的動作,後續動作的執行大約耗時1秒鐘。任務允許在未到超時間刪除,超時時間不超過30天。要求在現有的產品架構上實現此功能。存在問題 方案二既然方案一存在持久化的問題,那麼只要解決這個問題即可,比如儲存在乙個公共的儲...

005 基於物件導向設計乙個簡單的遊戲

這是乙個非常簡單的python物件導向遊戲,其中瑞文與蓋文互相攻擊的 class ruiwen print 國服售價 6300金幣 3500點捲 英雄標籤 上單,戰士,刺客 魔法值 0 魔法回覆 0 暴擊加成 200 魔法減免 23 移動範圍 350 攻擊範圍 125 攻擊速度 0.62,護甲 12...