1

Dienstag, 27. Juli 2010, 23:57

Welche Operatoren überladen?

Hallo,

ich hätte eine Frage und zwar möchte ich gerne, folgende Konstruktion bauen können:

KLASSE test;
IRGENDEIN_OBJECT row;

while( (row=test.getRow()) ) {

}

nur weiß, ich nicht welchen Operator ich genau überladen muss?
muss ich den:
bool KLASSEN::operator==(){

}

oder eher den Zuweisungsoperator dabei überladen?

2

Mittwoch, 28. Juli 2010, 11:19

Weder noch. wenn du unbedingt einen der beiden Operatoren überladen willst müsstest du den Zuweisungsoperator überladen, aber ich würde es dir nicht empfehlen, da es auch andere Lösungen gibt
Vom Zuweisungsoperator erwartet man ja eigentlich, dass eine Referenz auf die Variable zurückgegeben wird daher würde ich das auch nicht ändern, sondern dir vorschlagen entweder
  • einen (Smart)pointer zurückzugeben, dann hast du automatisch die Möglichkeit etwas ungültiges zurückzugeben
  • Einen impliziten Cast nach bool für das Objekt einzuführen und dem Objekt die Möglichkeit geben ungültig zu sein. Nur Empfehlenswert, wenn sich das Objekt im ungültigen Zustand korrekt verhalten kann.
  • Einen Iterator zu schreiben und diesen zurückzugeben.(Je nach Beschaffenheit deiner "KLASSE" Klasse)

Ähnliche Themen

Social Bookmarks