virtual/override
-
wenn ich zB eine Funktion einer Basisklasse, durch eine Funktion in einer abgeleitete KLasse überschreiben möchte, benutze ich das Schlüsselwort virtual, was aber bezweckt der Ausdruck override?
-
Der Ausdruck "ovverride" wird nur bei C++/CLI verwendet und zeigt dem Compiler, dass Du *wirklich* die Funktion "überladen" willst... ansonsten musst Du "new" verwenden oder der Compiler zeigt eine Fehlermeldung an.
Der Compiler zeugt auch eine Fehlermeldung an, wenn die basis-Methode nicht als "virtual" markiert ist.Das ist z.B. viel schöner als in (native) C++. Hier muss man immer Raten, ob es nun wirklich überladen ist oder nicht (ader wenn sich bei der Basisklasse Parameter ändern, wird plötzlich Deine "überladene" Methodenicht mehr aufgerufen; ohne Compiler-Fehler (so z.B. der Fall bei einigen MFC-Funktionen bei der portierung von VC6 nach VC2005/8)