C 11 führte das Schlüsselwort „Override“ ein, das Fragen zu seinem wahren Zweck aufgeworfen hat, der über die bloße Redundanz hinausgeht. Wird es ausschließlich zur Überprüfung auf überschriebene virtuelle Methoden in der Basisklasse verwendet oder erfüllt es eine tiefere Funktion?
Die Antwort liegt in der Idee der expliziten Absicht. Durch die Verwendung von „override“ erklären Sie ausdrücklich Ihre Absicht, eine virtuelle Funktion in der Basisklasse zu überschreiben, wodurch die Möglichkeit stiller Fehler ausgeschlossen wird. Wenn Sie beispielsweise beabsichtigten, eine virtuelle Funktion in der Basisklasse „Base“ mit der Signatur „virtual int foo() const“ in der abgeleiteten Klasse „Derived“ zu überschreiben, aber versehentlich das Qualifikationsmerkmal „const“ weggelassen haben, würde der Code trotzdem funktionieren Ohne Probleme kompilieren.
Die Einführung von „override“ in der abgeleiteten Klasse als „virtual int foo() override“ würde jedoch einen Compilerfehler auslösen, der Sie darauf aufmerksam macht die Diskrepanz und verhindert Fehlverhalten. Dieser Mechanismus stellt sicher, dass Ihr Code Ihre Absichten genau widerspiegelt, wodurch sowohl Klarheit als auch Zuverlässigkeit verbessert werden.
Das obige ist der detaillierte Inhalt vonWarum ist das Schlüsselwort „override' in C 11 mehr als nur eine Redundanz?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!