Ho riscontrato un problema con la specifica dei valori predefiniti per i membri della classe C++. Il mio codice è:C++: valori predefiniti nel membro della classe
Da Someclass.h:
class SomeClass
{
public:
SomeClass();
~SomeClass();
void printOut (bool);
}
... da SomeClass.cpp:
void SomeClass::printOut(bool foobar=true)
{
if (foobar) { std::cout << foobar << std::endl; }
}
... e, infine, da main.cpp :
int main()
{
SomeClass s;
s.printOut();
return 0;
}
Questo dà però messaggio di errore (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
Ho provato a specificare il valore di default direttamente nella dichiarazione della classe nel file di intestazione, ecc ho anche provato a cercare sia Stack Overflow e Google in generale, ma non ci riesce trova qualsiasi soluzione ovunque. Che cosa sto facendo di sbagliato?
Avrei giurato di averlo provato. : -S Comunque - come sicuramente non l'ho fatto - ha funzionato perfettamente e sono molto grato per il tuo aiuto - grazie! – gustafbstrom
Piacere mio, felice di poterti aiutare. – Konrad