error: request for member ... in ... which is of non-class type 
<p>I have a class with two constructors, one that takes no arguments and one that takes one argument.</p>

<p>Creating objects using the constructor that takes one argument works as expected. However, if I create objects using the constructor that takes no arguments, I get an error.</p>

<p>For instance, if I compile this code (using g++ 4.0.1)...</p>

<pre><code>class Foo
{
  public:
    Foo() {};
    Foo(int a) {};
    void bar() {};
};

int main()
{
  // this works...
  Foo foo1(1);
  foo1.bar();

  // this does not...
  Foo foo2();
  foo2.bar();

  return 0;
}
</code></pre>

<p>... I get the following error:</p>

<pre><code>nonclass.cpp: In function ‘int main(int, const char**)’:
nonclass.cpp:17: error: request for member ‘bar’ in ‘foo2’, which is of non-class type ‘Foo ()()’
</code></pre>

<p>Why is this, and how do I make it work?</p>
