Grundsätzlich möchte ich die C# -Compiler-Funktionalität seines override
Schlüsselwort in meinem C++ - Code.Gibt es eine Möglichkeit, (zur Kompilierungszeit) "überschriebene" Methoden zu kennzeichnen, deren Signaturen nicht mit der Basissignatur übereinstimmen?
class Base
{
virtual int foo(int) const;
};
class Derived : public Base
{
virtual int foo(int); // wanted to override Base, but forgot to declare it const
};
Wie wir alle wissen, wird der obige Code gut kompilieren, aber ein seltsames Laufzeitverhalten ergeben. Ich würde meinen C++ - Compiler lieben, meine schlechte Implementierung mit etwas wie C# s override
Schlüsselwort zu fangen. Gibt es irgendwelche Schlüsselwörter wie "override", das in C++ eingeführt wird, oder stecken wir bei #define override virtual
fest, um unsere Absicht zu zeigen? (Eigentlich tue ich das nicht - ich hasse die Verwendung des Präprozessors, um die Sprache zu "erweitern").
Entschuldigung für Naveen - Ihr ist die richtige "Zukunft" Antwort; aber für meine aktuellen Bedürfnisse (ich benutze VS2005), funktioniert das !! Ich markierte diese Antwort als "Beantworten" meiner Frage, aber +1 Naveens Antwort – franji1