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) {} };
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.
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:
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!