In C kann die Platzierung der Const-Referenz in Funktionsargumenten Fragen aufwerfen. Betrachten Sie die folgenden zwei Codeausschnitte:
int foo1(const Fred &arg) { ... }
int foo2(Fred const &arg) { ... }
Semantisch gesehen gibt es keinen Unterschied zwischen diesen beiden Argumenten. Die Sprache behandelt sie als denselben Typ, beide beziehen sich auf einen ständigen Verweis auf ein Objekt vom Typ Fred.
Stilistische Überlegungen:
Allerdings, wenn es um den Stil geht , die bevorzugte Verwendung variiert zwischen Programmierern.
Rechts-nach-Links-Parsing:
Gemäß der Rechts-nach-Links-Parsingregel sollten Qualifizierer (z. B. const) auf den Typ links davon angewendet werden. Dies würde die Verwendung von T const& unterstützen.
Es ist jedoch wichtig zu beachten, dass const T& auch effektiv von rechts nach links analysiert werden kann. Es weist auf einen Verweis auf einen konstanten Wert vom Typ T hin. Darüber hinaus ist const T& aufgrund der Mehrdeutigkeit von T const* (die möglicherweise als „Zeigerkonstante auf T“ anstelle von „Zeiger auf Konstante T“ interpretiert werden könnte) die eindeutigere Wahl.
Praktikabilität:
In Bezug auf Lesbarkeit und allgemeine Verwendung haben const T&/const T gegenüber T const&/T const deutlich an Dynamik gewonnen. Dies kann auf die Verbreitung dieser Stile in weithin anerkannten Quellen wie Stroustrups Buch und dem C-Standard zurückzuführen sein. Die Einhaltung allgemein anerkannter Praktiken kann die Lesbarkeit des Codes verbessern.
Das obige ist der detaillierte Inhalt vonConst-Referenzen in Funktionsargumenten: „const T&' oder „T const&'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!