Fehler weis nicht weiter
-
Hallo bekomme von MS VS6 folgenden fehler
error C2664: 'SetStatus' : cannot convert parameter 1 from 'void (void)' to 'ST'
bei der datei cartoon.cpp
[void Cartoon::Recover(void) { //Dhlosh Metablhton time_t Temp = time(NULL); // if(Temp == -1) { cout << "!!!FATAL ERROR!!! __FILE__ 000 012. H ora einai xalasmenh." << endl; abort(); } //Kurio Programma //an isxh tote peremine na ksekourastis if( (this->itsStrain.GetStatus() == Rest) && (this->GetTime() == 0) ) { this->SetTime(Temp); } //an perase o xronos anamonis ksana perpata if( Temp >= this->GetTime() + this->itsStrain.GetMaxStrain() ) { this->SetTime(0); this->itsStrain.SetStatus(Move);//hier fehler } }
wobei Set Status so auschaut in datei Strain.cpp
void Strain::SetStatus(ST In) { //dhlosh metablhton // //Kurio programma if(In == STFalse) { cout << "!!!FATAL ERROR!!! __FILE__ 000 006. La8os isodos dedomenon to programma termatizh" << endl; abort(); } this->Status = In; }
uns ST so definiert ist in datei Strain.hpp
#ifdef VarMove #undef VarMove #endif #define VarMove 1 #ifdef VarRest #undef VarRest #endif #define VarRest -1 #ifdef VarSTFalse #undef VarSTFalse #endif #define VarSTFalse 0 typedef enum{Move = VarMove,Rest = VarRest, STFalse = VarSTFalse}ST;
ich vermute der fehler ist irgendwie bei typedef da es doch lokal ist aber wie erweiter ich typedef auf alle file's, darum void(void) weil der compiler typef nicht sieht oder???. kann mir einer helfen
-
Du bist sicher, das cartoon.cpp strain.hpp einbindet?
Und warum sieht die strain.hpp überhaupt so bekloppt aus? Wofür die defines? Warum das typedef?
enum ST {Move = 1, Rest = -1, STFalse = 0};
So ist es soch gleich übersichtlicher, und lessbarer. Fragt sich nur, warum die werte überhaupt wichtig sind? du wirst doch eh nur mit den Konstanten der Aufzählung vergleichen, oder?
Dann würde sogar einenum ST {Move, Rest, STFalse};
reichen.
-
ich würde typedef auch weglassen und sogar nur
enum{
Move, //0
Rest, //1
STFalse //2
};
ohne Angabe von ST und überall wo Typ ST übergeben wird short übergeben
und ich würde die strain.hpp schon in der cartoon.h einbinden
-
Warum sollte es keinen Typ ST geben? Ist doch schwachsinn.
und ich meinte hpp, nicht cpp, sorry, danke.
-
@helium: hast schon Recht mit dem ST, weiß auch nicht was ich damit wollte