000
01.12.2003, 19:12 Uhr
~Martin
Gast
|
Hallo zusammen,
hab mal ne frage zu Zuweisungsoperatoren:
Laut meinem schlauen Buch können diese auch virtuell sein, überschreiben aber wegen der zwangsläufig unterschiedlichen Parameter den der Basisklasse nicht. Was soll das dann?
Ich habe auch mal was in folgender Art versucht:
class C... class D (public abgeleitet von C) ...
beide besitzen einen virtuellen operator=
Dann 2 Pointer auf die Basisklasse:
C* p1, p2, diese bekommen aber jeweils mit new() ein Objekt der Klasse D zugewiesen.
Nun würde ich bei der Zuweisung *p1 = *p2 erwarten, dass der Zuweisungsoperator der Klasse D aufgerufen wird, wegen der Polymorphie. Es wird aber bei mir der Zuweisungsoperator der Basisklasse C aufgerufen.
Bekomme ich mein gewünschtes Verhalten überhaupt hin? Mach ich was falsch?
Wenn es so nicht klappt, würde ich eine normale virtuelle funktion "Assign" oder so was schreiben.
Danke für jede Hilfe.
Martin |