title: error: request for member '..' in '..' which is of non-class type
body: <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>