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

注意:

##:合并操作符

合并操作符将出现在其左右的字符序列合并成一个新的标识符

 

posted @ 2022-08-01 17:49  zwj鹿港小镇  阅读(78)  评论(0编辑  收藏  举报