Possible Duplicate:
Default constructor with empty brackets
Instantiate class with or without parentheses?
Program:
class Foo
{
   public:
      Foo ( int bar = 1 )
      {
         cout << "bar=" << bar;
      }
};
int main() {
   cout << "0 - ";
   Foo foo_0 ( 0 ) ;
   cout << '\n';
   cout << "1 - ";
   Foo foo_1 ();
   cout << '\n';
   cout << "2 - ";
   Foo foo_4;
   cout << '\n';
   return 0;
}
Output:
0 - bar=0
1 - 
2 - bar=1
Question: why example #1 does not works, while examples #0 and #2 do?
 
     
     
    