Heim > Backend-Entwicklung > C++ > Können Mitgliedsvariablen mit gleichnamigen Konstruktorargumenten in C initialisiert werden?

Können Mitgliedsvariablen mit gleichnamigen Konstruktorargumenten in C initialisiert werden?

Susan Sarandon
Freigeben: 2024-11-13 03:35:02
Original
931 Leute haben es durchsucht

Can Member Variables Be Initialized with Constructor Arguments of the Same Name in C  ?

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");
    }
};
Nach dem Login kopieren

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 &vec als Parametertyp kann unnötiges Kopieren des ursprünglichen Vektorobjekts vermeiden.

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!

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