У меня есть класс с двумя конструкторами, один из которых не принимает аргументов и один принимает один аргумент.
Создание объектов с использованием конструктора, который принимает один аргумент, работает так, как ожидалось. Однако, если я создаю объекты, используя конструктор, который не принимает никаких аргументов, я получаю сообщение об ошибке.
Например, если я скомпилирую этот код (используя 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;
}
... Я получаю следующую ошибку:
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 ()()’
Почему это и как я могу заставить его работать?