是否存在运营商?

时间:2015-11-19 22:44:56

标签: c++ operator-overloading

因此,运算符重载显然是C ++的一个很好的特性。

但是说我想让一个类的成员只使用变量的名称输入。

所以喜欢:

class ShortProperty
{
public:
    ShortProperty(short value)
    {
        this->value = value;
    }
public:
    short operator=(short value)
    {
        this->value = value;
        return value;
    }
private:
    short value;
}

void foo()
{
    ShortProperty myproperty(2);

    // Now I can easily do...
    mtproperty = 3;

    // But say I wanted to do...
    short val = myproperty; // THIS LINE
}

这可能吗?有没有办法可以使用变量名称,获取成员“值”?

谢谢!

1 个答案:

答案 0 :(得分:3)

是的,你可以这样做。您可以通过将转换运算符作为成员函数来实现。

operator short () const
{
   return value;
}