是否可以将给定类隐式转换为基本类型?特别是一双。
如果我有课:
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 :: sinAngle theta(180.0);
double result = std::sin(theta.get_value());
如果有办法实现这种所需的功能,我假设它将通过运算符重载赋值运算符。或者可能以巧妙的方式定义移动/复制构造函数?
感谢您的任何见解。
答案 0 :(得分:5)
在类定义中,您可以定义转换运算符。例如
class Angle
{
//...
operator double() const { return get_value(); }
};