24、用C++实现属性
范例:
/* * @endcode * * @note 要求属性类型为基本类型,提供判断值是否被设置属性 */ #define GET_SET_IF_PROPERTY(type, prop) \ public: \ inline void set_##prop(const type& value) {prop##_ = value; is_set_##prop##_ = true;} \ public: \ inline const type& prop() {return prop##_;} \ bool is_set_##prop() {return is_set_##prop##_;} \ private: \ type prop##_; \ bool is_set_##prop##_ = false; class IbSeqence { GET_SET_IF_PROPERTY(std::string, testStr) }; int main() { IbSeqence ib; ib.set_testStr("11111111"); if (ib.is_set_testStr()) { std::cout << ib.testStr() << std::endl; } system("pause"); return 0; }
注意:
##:合并操作符
合并操作符将出现在其左右的字符序列合并成一个新的标识符
111