Const class& übergeben

Hi Experten!

Ich versuche unter VisualC++ 6.0 verzweifelt folgendes:

Ich habe eine Klasse, die sieht so aus:

class Text {
bool operator= (const Text& newtext);
bool get();
};

Text::operator+(…) ist so definiert:
bool Text::operator+(const Text& newtext) {
if (newtext.get())

}

Bei der Kompilierung bricht mir der Kompiler mit der Fehlermeldung
error C2662: ‚get‘ (if (newtext.get()): this-Zeiger kann nicht von ‚const class Text‘ in ‚class Text &‘ konvertiert werden
ab.

Kompiliere ich dasselbe Programm mit dem Borland Compiler 5.5, funktioniert das einwandfrei.

Was mache ich falsch, bzw. was passw Microsoft an meiner Definition nicht?

Vielen Dank für Eure Hile!

lex.

Hallo,

man sollte doch beim posten von Beispielen wenigstens auf die inhaltliche Richtigkeit achten (soll wohl eher operator+ in der Klassendefintition werden).
Aber zu deinem Problem:
Die strenge Typpruefung verhindert deinen Versuch.
Du versuchst auf das konstante Objekt ‚newtext‘ eine nichtkonstante Memberfunktion anzuwenden, also eine Funktion die potentiell das Objekt veraendern kann, dies ist nicht erlaubt.
Du musst schon in der Funktionsdefinition sagen, das diese Funktion das Objekt nicht veraendert. Das machst du indem du das ‚const‘ keyword hinzufuegt also z.B. so:
bool get() const;
Dann sollte es funktionieren.

Hope it helps
Ben

P.S. merkwuerdige Sache eine operator+ Funktion die einen bool zurueckgibt!

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]