在这里,我有一个名为Value
可以简单地获取和设置float
.
class Value
{
public:
Value(float f)
:f(f){};
float get()
{
return f;
}
void set(float f)
{
this->f = f;
}
private:
float f;
};
我希望我的课程能够像下面的示例一样工作。
Value value(3);
std::cout << value * 2 - 1 << std::endl; // -> 5
std::cout << value == 5 << std::endl; // -> true
value /= 2;
std::cout << value << std::endl; // -> 2.5
我应该手动将所有运算符方法添加到我的类中吗?
或者有没有更简单的解决方案来治疗Value
like float
?
代替get()
,你可以有一个转换运算符 https://en.cppreference.com/w/cpp/language/cast_operator to float
type:
operator float() const { return f; }
如果您还想启用更改值的操作(例如/=
),您可以有类似的返回引用的非常量运算符,或者您可以手动添加这些运算符。
但如果你想要一个行为完全相同的类float
,使用可能会更好float
而不是拥有Value
根本没有课。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)