Interner Fehler und friend
-
Hallo zusammen
Ich erhalte bei diesem Code mit dem Microsoft Visual C++ 6.0 einen internen
Compiler Fehler C1001. Nun würde ich gerne wissen, ob es an dem Code
liegt oder am Compiler und wie ich dieses Problem beheben kann. Soweit ich
das schon herausgefunden habe, hängt es irgendwie mit dem überladenen operator zusammen (ist ja auch nicht besonders viel enthalten).
Datum.h
class Datum { time_t sec; public: Datum (time_t s=0) {sec=s;} void set_sec (const time_t& s){sec=s;} friend Datum operator- (const Datum& ,const Datum& ); };
Datum.cpp
#include "datum.h" Datum operator- (const Datum& s1,const Datum& s2) { Datum tmp; tmp.sec = s1.sec - s2.sec; return tmp; }
Gruß elwida
-
sieht (relativ) ok aus. was hast du den herausgefunden? hast du das als minimalbeispiel schon einmal ausprobiert.
-
edit: worng...
-
jep als minimalbeispiel ausprobiert. habe nur diese eine methode in meiner Klasse stehen. komischer weise aber tritt nur der fehler auf wenn ich auf minus oder plus hin überladen möchte.
Gruß elwida
-
probier mal das:
class x { //... public: x operator + (const x&) { return x(this->value + x.value); } };
-
ja funktioniert
class Datum { time_t sec; public: Datum (time_t s=0) {sec=s;} void set_sec (const time_t& s){sec=s;} Datum& operator +=(const Datum& sec1) { sec += sec1.sec; return *this; } }; inline Datum operator+ (const Datum& se1,const Datum& se2) { Datum tmp(se1); tmp +=se2; return tmp; }
funktioniert ebenso
nur wenn friend ins spiel kommt gibt es den fehlergruß elwida
-
Hast du das SP5 installiert?
-
danke erstmal an davie und helium, SP ist installiert,
aber der fehler lag wo anders und zwar am "using namespace std;"gruß elwida