最近要接手一个新的项目,项目是C++写的,里面使用了一些macro,还是有些意思的。
假如现在有一个父类ParentClass,这个父类有很多子类,这些子类都需要实现一个实例化的函数,当然可以在父类中定义一个,之后子类override,使用macro可能更好些,只要做好规范,大家就照着标准写就可以了,生出来的函数都是一致的。那么我们就可以实现下面两个宏,一个是declare,一个implement。
#define DECLARE_SUB_CLASS(_class_name) \
public : \
static ParentClass *createSubObject(int parameter);
#define IMPLEMENT_SUB_CLASS (_class_name,) \
ParentClass *_class_name:: createSubObject(int parameter) \
{ \
_class_name subObj;