initialization of non-const ... OhOh
-
Ich hatte dieses Problem hier schon einmal gepostet. Damals habe ich aber gcc verwendet, jetzt g++. Vielleicht ist die Fehlermeldung jetzt eindeutiger.
Also zum Problem. Die untenstehende Klassenkonstruktion erzeugt bei g++ folgenden Fehler (bezieht sich auf die Zeile mit dem Stern):initialization of non-const reference type 'class Adr &' from rvalue of type 'Adr' ...
Zu bemerken ist, wie damals schon, daß dies bei Windows-Compilern keine Fehlermeldung verursacht. Irgendwie begreife ich nicht, warum das nicht funktioniert.
class RefCount; class Adr { public: Adr() {ptr=0;} Adr(Adr& b) { ptr= b.ptr;} Adr(RefCount* p) {ptr=p;} RefCount& operator*() { return *ptr;} protected: RefCount* ptr; }; class RefCount { public: RefCount() {count=0;} RefCount(int n) {count=n;} int& getRefs() { return count;} Adr operator&() { return Adr(this); } (*) private: int count; };
[ Dieser Beitrag wurde am 04.11.2002 um 20:46 Uhr von agrimm editiert. ]
-
Probier mal beim CopyConstructor von Adr ein const einzufügen:
Adr(const Adr& b) { ptr= b.ptr;}
-
Es funzt. Zwar mit Warnungen, aber egal. Danke !!
Respekt.
[ Dieser Beitrag wurde am 05.11.2002 um 01:25 Uhr von agrimm editiert. ]