Heim > Backend-Entwicklung > C++ > Hauptteil

Können Konstruktorargumente und Mitgliedsvariablen identische Namen haben?

Linda Hamilton
Freigeben: 2024-11-23 07:00:28
Original
331 Leute haben es durchsucht

Can Constructor Arguments and Member Variables Have Identical Names?

Verwendung identischer Konstruktorargument- und Mitgliedsvariablennamen

Frage:

Ist das zulässig? Initialisieren Sie Mitgliedsvariablen mit denselben Namen wie Konstruktorargumente, wie im Folgenden dargestellt Code?

class Blah {
    std::vector<int> vec;

public:
    Blah(std::vector<int> vec): vec(vec)
    {}
};
Nach dem Login kopieren

Antwort:

Ja, diese Vorgehensweise entspricht vollständig dem C-Standard. Gemäß Abschnitt 12.6.2/7 des Standards:

Names in the expression-list of a mem-initializer are evaluated in the scope of the constructor for which the mem-initializer is specified.
Nach dem Login kopieren

Dies impliziert, dass innerhalb der Konstruktorinitialisierungsliste auf die Mitgliedsvariablen mit denselben Namen wie die Konstruktorargumente verwiesen werden kann. Somit ist der von Ihnen bereitgestellte Code sowohl legal als auch garantiert korrekt.

Zusätzliche Informationen:

  • Im Konstruktor kann der Zeiger this verwendet werden Verweisen Sie auf das Objekt, das initialisiert wird.
  • Es wird empfohlen, konstante Referenzen für Konstruktorargumente zu verwenden, um unnötiges zu vermeiden Kopien.

Das obige ist der detaillierte Inhalt vonKönnen Konstruktorargumente und Mitgliedsvariablen identische Namen haben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage