Heim >Backend-Entwicklung >C++ >Können Mitgliedsvariablen mit gleichnamigen Konstruktorargumenten in C initialisiert werden?
Konstruktorargumente mit demselben Namen wie Mitgliedsvariablen verwenden
Ursprüngliche Frage:
Ist Nach dem C-Standard ist es zulässig, Mitgliedsvariablen mit demselben Namen wie den Konstruktor zu initialisieren Argumente?
Antwort:
Ja, der C-Standard erlaubt diesen Ansatz. Der Code initialisiert Mitgliedsvariablen entsprechend den in den Konstruktorargumenten angegebenen Namen. Das folgende Beispiel veranschaulicht dies:
#include <cstdio> #include <vector> class Blah { std::vector<int> vec; public: Blah(std::vector<int> vec) : vec(vec) {} void printVec() { for (unsigned int i = 0; i < vec.size(); i++) printf("%i ", vec.at(i)); printf("\n"); } };
Standardreferenz:
Der C-Standard (§12.6.2/7) besagt: „Namen in der Ausdrucksliste eines Mem-Initialisierers werden im Bereich des Konstruktors ausgewertet, für den der Mem-Initialisator gilt angegeben."
Zusätzliche Überlegungen:
Das Beispiel zeigt auch, dass die Verwendung von const std::vector
Das obige ist der detaillierte Inhalt vonKönnen Mitgliedsvariablen mit gleichnamigen Konstruktorargumenten in C initialisiert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!