There are many ways to initialize an object, one of which is calling a constructor of centain user-defined type. Here are the examples.
Hello my_hello = Hello(3);
Hello my_hello(3);
As you already know, a constructor doesn't return anything. However, as you look above, it seems that it does return its initialized object. Furthermore, the assignment operator makes it more suspicious because it means it copys the right-hand object to the left-hand object.
Am i guessing wrong? Would you please explain it?