由于公司需要,有大量具有相同字段的函数代码需要在程序中实现,因此想到了宏函数替换来解决这个问题。
贴图如下
#define RGISTER(x,y) \
class x : class Base \
{\
public:\
x##() {};\
public:\
int use()\
{\
x##DeliverPtr y##DeliverPtr = Use() x##Deliver;\
x##ReceivePtr y##ReceivePtr = Use() x##Receive;\
}\
}
RGISTER(GetNumber, getNumber);
在宏函数替换时需要注意:
(1)当替换代码段与其他代码间有空格时,可以不用##连接
(2)#表示将变量转化为字符串,##表示连接
(3)对类进行替换时,如有应在类内部声明并实现,如在类外部声明实现,在Visual studio中会出现编译错误。