Mengapa Objek Kelas Yang Sama Boleh Mengakses Data Peribadi Satu Sama Lain
Adalah menghairankan bahawa objek kelas yang sama boleh mengakses peribadi masing-masing data. Memandangkan data peribadi sepatutnya bersifat peribadi, mengapa ini berlaku?
Memahami Kawalan Akses Peringkat Kelas
Dalam C , kawalan akses dilaksanakan pada per- asas kelas, bukan asas setiap objek. Ini bermakna keistimewaan akses untuk sekeping data tertentu ditentukan oleh kelas yang dimilikinya, bukan oleh objek yang memegangnya.
Pertimbangkan kod berikut:
class TrivialClass { public: TrivialClass(const std::string& data) : mData(data) {}; const std::string& getData(const TrivialClass& rhs) const { return rhs.mData; }; private: std::string mData; };
Di sini , kaedah getData TrivialClass boleh mengakses ahli mData objek TrivialClass yang lain. Ini kerana kawalan akses ditentukan oleh kelas itu sendiri. Penentu akses peribadi menjadikan mData peribadi hanya dalam kelas TrivialClass dan kelas terbitannya.
Implikasi Kawalan Akses Peringkat Kelas
Kawalan akses peringkat kelas mempunyai beberapa implikasi :
Kesimpulan
Walaupun kawalan akses peringkat kelas mungkin kelihatan berlawanan dengan intuitif, ia membolehkan pengaturcara C mentakrif dan berinteraksi dengan kelas dan objek dengan cara yang memanfaatkan sifat statik bahasa. Adalah penting untuk memahami implikasi model ini apabila mereka bentuk dan melaksanakan kod C.
Atas ialah kandungan terperinci Mengapa Objek Kelas Yang Sama Boleh Mengakses Ahli Peribadi Satu Sama Lain dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!