在数值表达式中最方便使用数字包装类的选项是什么?

时间:2015-08-12 07:06:52

标签: c++ operator-overloading

假设我有一个数值的包装类,其中有一些"额外的函数":

DblWrapper a;
DblWrapper b;
DblWrapper d;
double c = a * b; // Best idea: overload operator () ( c = a() * b() )
d = c; // Best idea: overload operator =

现在,我还想在数字表达式中尽可能方便地使用此包装器的实例,如:

c = a * b

或者是否真的有办法全自动转换为<tbody>示例中给出的数值?

1 个答案:

答案 0 :(得分:3)

编写转换运算符和转换构造函数。

operator double() const
{
   return value;
}

DblWrapper(double d) : value(d)
{
}

Live example