假设我有一个带有一些“额外功能”的数值包装器类:
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/