Rumah > pembangunan bahagian belakang > C++ > Bolehkah Kelas Dalaman dalam C Mengakses Pembolehubah Peribadi Kelas Induk Mereka?

Bolehkah Kelas Dalaman dalam C Mengakses Pembolehubah Peribadi Kelas Induk Mereka?

Mary-Kate Olsen
Lepaskan: 2024-11-29 08:04:10
asal
220 orang telah melayarinya

Can Inner Classes in C   Access Their Parent Class's Private Variables?

Akses Kelas Dalaman kepada Pembolehubah Peribadi

Dalam C , kelas dalam bersarang dalam kelas lain dan mempunyai keistimewaan akses khas. Timbul persoalan: bolehkah kelas dalam mengakses pembolehubah peribadi kelas induk mereka?

Jawapannya ialah ya. Kelas dalaman pada dasarnya adalah rakan kelas yang ditakrifkan di dalamnya. Ini bermakna objek kelas dalam boleh mengakses secara langsung ahli peribadi objek kelas induknya.

Walau bagaimanapun, tidak seperti di Jawa, tiada hubungan induk-anak tersirat antara objek kelas dalam dan objek kelas induknya. Untuk mewujudkan hubungan ini, objek kelas induk mesti dihantar secara eksplisit kepada pembina kelas dalam.

Berikut ialah contoh kod yang menunjukkan akses kelas dalam kepada pembolehubah persendirian:

#include <iostream>

class Outer {
private:
    int var = 4;
    static const char* const MYCONST = "myconst";

public:
    class Inner {
    public:
        Inner(Outer& parent) : parent(parent) {}
        void func() {
            std::cout << parent.var << std::endl;
        }

    private:
        Outer& parent;
    };
};

int main() {
    Outer outer;
    Outer::Inner inner(outer);
    inner.func();
    return 0;
}
Salin selepas log masuk

Dalam ini contoh, kelas dalam Inner mempunyai pembina yang mengambil rujukan kepada objek Luar induk sebagai hujah. Ini mewujudkan perhubungan induk-anak, membenarkan kelas dalam mengakses var pembolehubah persendirian objek Luar.

Apabila Inner::func() dipanggil, ia mencetak nilai pembolehubah persendirian var, menunjukkan bahawa kelas dalam sememangnya boleh mengakses pembolehubah peribadi kelas induknya.

Atas ialah kandungan terperinci Bolehkah Kelas Dalaman dalam C Mengakses Pembolehubah Peribadi Kelas Induk Mereka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan