Saya memiliki kelas dengan dua konstruktor, yang tidak menggunakan argumen dan yang menggunakan satu argumen.
Membuat objek menggunakan konstruktor yang mengambil satu argumen berfungsi seperti yang diharapkan. Namun, jika saya membuat objek menggunakan konstruktor yang tidak membutuhkan argumen, saya mendapatkan kesalahan.
Misalnya, jika saya mengkompilasi kode ini (menggunakan g ++ 4.0.1) ...
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;
}
... Saya mendapatkan kesalahan berikut:
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 ()()’
Mengapa ini, dan bagaimana saya membuatnya bekerja?