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_;