假设我们有一个叫做Complex复数的类.我想将此对象转换为double对象.
相反,我可以通过在Complex中实现复制ctor来实现:
Complex(const double &d);
但是,我无法实现i复制ctor in double将收到一个Complex.
我该怎么做呢?我知道有一种运算符重载的方法,但我找不到如何.
最终我想要这行将编译:
Complex c;
(double)c;
谢谢!!
Joh*_*ing 11
在Complex类上实现转换运算符:
class Complex
{
// ...
operator double() const
{
double ret = // magic happens here
return ret;
}
};
Run Code Online (Sandbox Code Playgroud)
如果由于某种原因您不想弄清楚这一点,您可以提供全局转换功能:
double convert_to_double(const Complex& rhs)
{
double ret = // magic happens
return ret;
}
Run Code Online (Sandbox Code Playgroud)