Vererbung und Überschreibung
-
Hallo,
wie kann man festlegen, ob eine Methode von Child-Klasse überschrieben worden ist, oder nicht?
habe es so probiert:
if(&MyBase::Proc == &MySubCall::Proc) cout<<"mybase und mysubcall"<<endl; if(&MyBase::Proc == &MyCall::Proc) cout<<"mybase und mycall"<<endl;MyBase ist klar, die Oberklasse von MySubCall und MyCall. MyCall überschreibt Proc von MyBase. MySubCall überschreibt nicht.
MfG
-
Kurze Suche im Standard ergibt 5.10§2:
[...]if either [operand] is a pointer to a virtual member function, the result [of the equality comparison] is unspecified
Ist auch klar, da ein Member-Pointer nicht unbedingt eine Adresse enthalten muss, sondern z.B. nur den Index in die vtbl, und dann wären Überschreibungen derselben virtuellen Funktion einander gleich.
-
schade
... dann muss ich doch manuel festlegen, was überschrieben wurde ...