我有用作運算符5類:太多類具有相同的概念
TurnOn , TurnOff , PushBox , Exit , Enter
我有對於每種類型中,保持該類型的描述的字符串。
例如:
class Places {
enum Type { Room1 ,Room2 ,Room3 ,Room4 };
// more stuff
};
TurnOn turnOn(Places::Room1);
string turnOnString = "TurnOn(Room1)" ;
我想存儲在地圖中的信息,所以我必須爲每個操作員5個地圖:
map <string , TurnOn > opeatorTurnOn;
map <string , TurnOff > opeatorTurnOff ;
map <string , PushBox > opeatorTPushBox ;
map <string , Exit > opeatorExit ;
map <string , Enter > opeatorEnter ;
但現在我有5點的地圖,同一個概念:帶有其運算符的字符串。
如何將運營商存儲在同一個地圖中,這樣我就不必擁有同一個概念的5個地圖?
這似乎是一個有缺陷的設計,5個運算符類不是從基類'運算符'派生的嗎?從基類中派生所有按鈕並在預定義數字時在整個程序中動態創建新操作符會更有意義。例如'operator * turnOn = new TurnOn;' –
@ Need4Sleep:(1)這應該是一個答案。 (2)我會嘗試修復我的設計。謝謝 ! – ron