簡體   English   中英

定義班級

[英]Defining classes

我有一些大的代碼行,我想打包到定義中以便快速使用。

EventManager::get_mutable_instance().get<EventManager::KeyEvent>("KeyPressed").Call(EventManager::KeyEvent::ArgsType(localEvent.Key));

這是EventManager是單例類。 我希望只傳入定義EventManager :: KeyEvent類型和信號名稱“ KeyPressed” 你能幫我嗎?

由於我不喜歡定義的事實,因此我將制作一個“包裝器”功能,如下所示:

public void call(EventType type, String whatToCall) {
    EventManager::get_mutable_instance().get<type>(whatToCall).Call(EventManager::KeyEvent::ArgsType(localEvent.Key));
}

編輯:未經測試的定義可能看起來像:

#define call(Type,Name) \
EventManager::get_mutable_instance().get<Type>(Name).Call(EventManager::KeyEvent::ArgsType(localEvent.Key));

Edit2:我不是很習慣於您的代碼,但是它更具可讀性和可調試性是這樣的。 (請注意,班級名稱不是您的,但希望您能明白我的意思)

Event event = EventManager::get_mutable_instance().get<type>(whatToCall);
ArgType argType = EventManager::KeyEvent::ArgsType(localEvent.Key);
event.call(argType);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM