Use assignment operators instead of an implicit constructor

In my program, I am trying to use the assignment operator= to assign an object of my class. I am specifically trying to call the assignment operator instead of an implicit constructor (thus the explicit keyword). When I try to compile, I get a C2440 Compiler Error:

class MyClass {
    explicit MyClass(double x = 0.) :
        m_x(x) {

    MyClass& operator=(const double& other) {
        m_x = other;

        /* do something special here */

        return *this;
    double m_x;

int main()
    MyClass my_class = 2.; // C2440

    return 0;

I guess that the compiler fails trying to call the constructor implicitly (because of explicit). Does anyone have a fix?

Source: Windows Questions C++