是否存在运营商?
Does an operator exist for this?
因此,运算符重载显然是 C++ 的一个重要特性。
但是假设我想获得一个 class 的成员,只需键入变量名即可。
很喜欢:
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
}
这可能吗?有没有一种方法可以通过使用变量名来获取成员 "value"?
谢谢!
是的,你可以做到。您可以通过提供一个转换运算符作为成员函数来做到这一点。
operator short () const
{
return value;
}
因此,运算符重载显然是 C++ 的一个重要特性。
但是假设我想获得一个 class 的成员,只需键入变量名即可。
很喜欢:
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
}
这可能吗?有没有一种方法可以通过使用变量名来获取成员 "value"?
谢谢!
是的,你可以做到。您可以通过提供一个转换运算符作为成员函数来做到这一点。
operator short () const
{
return value;
}