Warum muss "override / final" nach dem Funktionsdeklarator platziert werden?

7

Ich habe mich immer gefragt, warum override und final nach dem Member-Function-Deklarator stehen müssen:

%Vor%

Für mich wäre es logischer, override / final anstelle von virtual :

zu setzen %Vor%

Gibt es einen Grund dafür? Vielleicht ein Kompatibilitätsproblem mit vor C ++ 11?

    
geza 02.11.2017, 22:18
quelle

1 Antwort

18

Dies liegt daran, dass override und final sind keine Keywords .

Stattdessen sind sie spezielle Bezeichner .

Das bedeutet, dass Sie Variablen, Funktionen oder Typnamen (Typalias oder Klassen) mit diesen Namen deklarieren können.

Sie können nur wie Memberfunktionsmodifikatoren in einem sehr kleinen Kontext verwendet werden, in dem der Kontext dem Compiler vorher bekannt sein muss, wenn er die Quelle analysiert. Platzieren sie nach der Funktionsdeklaration ist eine sehr einfache Möglichkeit, Mehrdeutigkeit aus der C ++ - Grammatik für diesen Kontext zu entfernen.

    
Some programmer dude 02.11.2017, 22:21
quelle

Tags und Links