C++中的宏,是将一个标识符定义为一个字符串。在源程序中,该标识符会被指定的字符串来代替。
格式:#define <宏名> (参数表) <宏体>
#define SG_M(TYPE, M)\
public:\
void set_##M( const TYPE& in_##M ) {\
M##_ = in_##M;\
}\
TYPE M() {\
return M##_;\
}\
private:\
TYPE M##_;
1. 宏仅进行简单的字符串替换,不会进行任何运算。
2. ##是一个关键字,表示连接宏参数。
使用:
SG_M (double, price)
后面不要加分号,预处理后相当于
public:
void set_price( const double& in_price ) {
price_ = in_price;
}
double price() {
return price_;
}
private:
double price_;