如何通过重载()将double类型转化为类类型

如何通过重载()将double类型转化为类类型

有一个题目要求:

img

其中Complex类如下:

class Complex{
public:
    double real, imag;
    explicit Complex(double real = 0, double imag = 0) : real(real), imag(imag){}
};

只会把(double)这样的重载,返回属性就可以了,但是将double类型转化为Complex类型的话,不知道怎么捕捉()后面的那个数,网上搜到的也都是重载(int)这种的,求解


class Complex
{
public:
    double real, imag;
    explicit Complex(double real , double imag ) : real(real), imag(imag) {}
    Complex(double imag) : real(0), imag(imag) {}
    Complex() : real(0), imag(0) {}
};
main()
{
    double t = 5.23;
    Complex cmp;
    cmp = (Complex)t;
    cout << cmp.real << "+" << cmp.imag << "i" << endl;
}