Heim  >  Artikel  >  Backend-Entwicklung  >  Const-Referenzen in Funktionsargumenten: „const T&' oder „T const&'?

Const-Referenzen in Funktionsargumenten: „const T&' oder „T const&'?

Susan Sarandon
Susan SarandonOriginal
2024-11-20 17:03:15478Durchsuche

Const References in Function Arguments: `const T&` or `T const&`?

Const-Referenz in Funktionsargumenten: Vor oder nach dem Typbezeichner?

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.

  • const T&: Dies ist der Stil, der in Stroustrups „The C Programming Language“ und auch im C-Standard selbst verwendet wird.
  • T const&: Dieser Stil wird weniger häufig verwendet, wird aber möglicherweise von einigen wegen der Konsistenz mit den Parsing-Regeln von rechts nach links bevorzugt, was in C als gute Praxis gilt.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn