<p>Is there any good reason that an empty set of round brackets (parentheses) isn't valid for calling the default constructor in C++?</p>

<pre><code>MyObject  object;  // ok - default ctor
MyObject  object(blah); // ok

MyObject  object();  // error
</code></pre>

<p>I seem to type "()" automatically everytime. Is there a good reason this isn't allowed?</p>

The same syntax is used for function declaration - e.g. the function
```
object
```
, taking no parameters and returning
```
MyObject
```