It is possibly an ambiguity. myClass instance1(); could either be a constructor call or a forward declaration of a function called instance1 taking no arguments and returning a myClass.
The following is the prototype declaration of a function whose return data type is a myClass object. The function has no arguments.
myClass instance1();
If you ever decide to call the function, you will have to supply an implementation (function body) some place where the compiler can find it. If you never invoke the function, the above statement is still perfectly valid C++ (assuming the class has been defined when the compiler encounters it), but it does not create executable code.
Note that in C++ a function prototype with no arguments is the same as if you had declared it
myClass instance1(void);
Many C++ programmers prefer the explicit "void" parameter list in hopes of decreasing the probability of us mere humans becoming confused. The compiler never gets confused with stuff like this, but for the rest of us, well...
On the other hand, the following calls the myClass constructor to create an object of that class. The name of the object is declared to be "instance2"