如何将用户定义的类型转换为基本类型?

Ash*_*ban 7 c++

假设我们有一个叫做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)