[英]#define function arguments c++
我在一個公共接口中調用了一組函數,並將這些函數指針存儲在一個公共容器中,所以我有
typedef void(*CommandFunction)(const InputArgsMap &, const ArgumentMap *);
有了這個說,如果沒有復制粘貼參數列表,聲明這種類型的函數的最佳方法是什么? 我想通過#define
實現這個,但還有其他(更好的,oop)方式嗎?
例如,是否可以做類似的事情
#define CMD_ARGS (const InputArgsMap &, const ArgumentMap *)
void _fcn_1(CMD_ARGS);
void _fnc_2(CMD_ARGS);
如果聲明一個函數而不是指針,則鍵入別名
typedef void CommandFunction(const InputArgsMap &, const ArgumentMap *);
然后你可以用它來聲明函數
CommandFunction _fcn_1;
CommandFunction _fcn_2;
在定義參數列表時,您仍需要寫出參數列表。
有沒有其他(更好的,oop)的方式?
覆蓋抽象接口的虛擬成員函數可能更好,具體取決於您正在做什么。 如果你這樣做,你將不得不復制參數列表,你似乎覺得這很令人反感; 但是在現代C ++中,你至少可以使用override
說明符來確保你做對了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.