C++: значения по умолчанию в члене класса

У меня возникла проблема с указанием значений по умолчанию для членов моего класса C++. Мой код:

Из Someclass.h:

class SomeClass
{
public:
    SomeClass();
    ~SomeClass();
    void printOut (bool);
}

... из SomeClass.cpp:

void SomeClass::printOut(bool foobar=true)
{
    if (foobar) { std::cout << foobar << std::endl; }
}

... и, наконец, из main.cpp:

int main()
{
    SomeClass s;
    s.printOut();
    return 0;
}

Однако это дает сообщение об ошибке (gcc):

../main.cpp: In function `int main()':
../main.cpp:8: error: no matching function for call to `SomeClass::printOut()'
../SomeClass.h:18: note: candidates are: void SomeClass::printOut(bool)
subdir.mk:21: recipe for target `main.o' failed
make: *** [main.o] Error 1

Я попытался указать значение по умолчанию непосредственно в объявлении класса в заголовочном файле и т. д. Я также пытался выполнить поиск как в Stack Overflow, так и в Google в целом, но нигде не нашел решения. Что я делаю не так?

5
задан Gilles 'SO- stop being evil' 3 May 2012 в 18:27
поделиться