Rumah >pembangunan bahagian belakang >C++ >Bolehkah Pembolehubah Ahli Dimulakan dengan Argumen Pembina dengan Nama Yang Sama dalam C?

Bolehkah Pembolehubah Ahli Dimulakan dengan Argumen Pembina dengan Nama Yang Sama dalam C?

Susan Sarandon
Susan Sarandonasal
2024-11-13 03:35:02964semak imbas

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

Menggunakan Argumen Pembina dengan Nama Sama Seperti Pembolehubah Ahli

Soalan Asal:

Adakah ia dibenarkan di bawah piawaian C untuk memulakan pembolehubah ahli menggunakan nama yang sama seperti pembina hujah?

Respons:

Ya, piawaian C membenarkan pendekatan ini. Kod ini memulakan pembolehubah ahli mengikut nama yang disediakan dalam hujah pembina. Contoh berikut menggambarkan ini:

#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");
    }
};

Rujukan Standard:

Piawaian C (§12.6.2/7) menyatakan bahawa "Nama dalam senarai ungkapan pem-pemula dinilai dalam skop pembina yang mem-pemula adalah ditentukan."

Pertimbangan Tambahan:

Contoh juga menunjukkan bahawa menggunakan const std::vector &vec sebagai jenis parameter boleh mengelakkan penyalinan yang tidak perlu bagi objek vektor asal.

Atas ialah kandungan terperinci Bolehkah Pembolehubah Ahli Dimulakan dengan Argumen Pembina dengan Nama Yang Sama dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn