これは私が持っているものです:
Complex.h
class Complex
{
public:
    Complex(double initialRealPart, double initialImaginaryPart = 0.0)
    : realPart(initialRealPart), imaginaryPart(initialImaginaryPart)
    {
    }
    Complex() { }
private:
    double realPart;
    double imaginaryPart;
};
int main()
{
    Complex c = 4.5;
}
この状況では、暗黙の初期化が機能するはずではありませんか?
編集: おっと、私は実際に自分のコードで realPart と imaginaryPart を double として持っていました。ただし、まだ機能していません。
暗黙的に初期化しようとすると、double から Complex への適切な変換がないと表示されます。
EDIT2:Complex.hに引数を取り込まないComplex()コンストラクターもありました