是否可以将给定类隐式转换为原始类型?特别是双倍。
如果我有一个类:
class Angle
{
double value;
Angle(double init_value = 0.0) : value(init_value) {}
double get_value() const {return (value);}
}
我是否可以调用一个函数,例如 std::sin(),并提供一个 Angle 类的对象,而无需在每次调用时显式地获取角度的值?例如:
Angle theta(180.0);
double result = std::sin(theta);
不必通过以下方式调用 std::sin:
Angle theta(180.0);
double result = std::sin(theta.get_value());
如果有一种方法可以实现这个所需的功能,我认为它会通过赋值运算符的运算符重载来实现。或者也许通过巧妙的方式定义移动/复制构造函数?
感谢您的任何见解。
最佳答案
在类定义中,您可以定义一个转换运算符。例如
class Angle
{
//...
operator double() const { return get_value(); }
};
关于c++ - 从类到 double 的隐式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46720569/