Zitat von
DGL-luke:
1. ist das sauber? kann sich das nicht verschieben, so dass die Konstante dann auf einen falschen Bereich zeigt?
Die Konstante vmtCompare ist eine Konstante, die zur Compiletime festgelegt wird. in der Virtual Method Table hinterlegt der Linker die Adressen für die virtuellen Methoden. VmtCompare zeigt auf die Adresse (relativ zum Instanzzeiger), in der die Adresse für die überschriebene Compare(?)-Funktion steht. Der Punkt in der
VMT, wo die Adresse von Compare steht, bleibt immer der selbe. Der wird zur Compiletime festgelegt und bleibt dort. Deswegen kann sich das nicht verschieben. (Etwas anders ist es bei Interfaces).
Zitat von
DGL-luke:
2. Wie macht mans sauber?
IMO so wie gemacht
greetz
Mike