假设我有一个带有一些“额外功能”的数值包装器类:

struct DblWrapper{
  double value;
  void func1(); // maybe to print nicely
  void func2(); // maybe to register this for automatic capture at data source
}


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

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示例中给出的数值?

最佳答案

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

operator double() const
{
   return value;
}

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


Live example

关于c++ - 在数字表达式中最方便地使用数字包装器类的方法有哪些?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31958235/

10-13 00:01