Tengo problemas con este fragmento de código, después de tomar esta clase del archivo main.cpp y dividirla en .h y .cpp, el compilador comenzó a quejarse sobre los parámetros predeterminados que estaba usando en un vacío.¿El compilador se queja de mis parámetros predeterminados?
/* PBASE.H */
class pBase : public sf::Thread {
private:
bool Running;
public:
sf::Mutex Mutex;
WORD OriginalColor;
pBase(){
Launch();
Running = true;
OriginalColor = 0x7;
}
void progressBar(int , int);
bool key_pressed();
void setColor(int);
void setTitle(LPCWSTR);
bool test_connection(){
if(Running == false){
return 0;
}
else{
return 1;
}
return 0;
}
void Stop(){
Running = false;
if(Running == false) Wait();
}
};
/* PBASE.CPP */
// ... other stuff above
void pBase::setColor(int _color = -1){
if(_color == -1){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | OriginalColor);
return;
}
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | _color);
}
y el error, tomada de VC2010
error 4 error C2572: 'PBASE :: setColor': redefinición de los parámetros por defecto: parámetro 1
¡Muy bien! Funcionó (aunque un poco raro porque funcionaba bien cuando tenía todo el código en un archivo). – Christian