[英]#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.