Norbert Eder
Erfahrenes Mitglied
Gehen wir davon aus, dass du diesen Aufruf das erste Mal siehst (b ist hier ein Objekt vom Typ Bimbo und mit relevanten Daten gefüllt):
So, und jetzt sag mir (ohne zu wissen wie der Konstruktor implementiert ist), woran du erkennen willst, dass es sich um einen Copy-Constructor handelt? Der zweite Aufruf zeigt sofort, dass eine Kopie erstellt wird.
Und wenn du sagst, dass du im Clone genauso einen Vergleich implementieren kannst, dann ist das prinzipiell richtig, dann hast du als Entwickler der Klasse aber gewaltig danebengegriffen. Warum?
Die Methode Clone stammt vom ICloneable-Interface und ist für Kopien (die MSDN läßt sich da nicht so besonders zum Thema Shallow bzw. Deep Copies aus) gedacht. Für Vergleiche wäre Das Interface IComarable zu verwenden, wodurch die Methode CompareTo zu implementieren wäre.
C#:
Bimbo b2 = new Bimbo(b);
Bimbo b2 = b.Clone();
Und wenn du sagst, dass du im Clone genauso einen Vergleich implementieren kannst, dann ist das prinzipiell richtig, dann hast du als Entwickler der Klasse aber gewaltig danebengegriffen. Warum?
Die Methode Clone stammt vom ICloneable-Interface und ist für Kopien (die MSDN läßt sich da nicht so besonders zum Thema Shallow bzw. Deep Copies aus) gedacht. Für Vergleiche wäre Das Interface IComarable zu verwenden, wodurch die Methode CompareTo zu implementieren wäre.