Disyorkan, 2024

Pilihan Editor

Perbezaan antara Swasta dan Dilindungi dalam C ++

Terdapat tiga jenis perlindungan akses yang ditakrifkan dalam bahasa pengaturcaraan C ++ untuk menyembunyikan data. Penyembunyian data adalah sebahagian penting dari pengaturcaraan berorientasikan objek. Kata kunci persendirian dan dilindungi menawarkan tahap perlindungan akses untuk menyembunyikan data dan berfungsi dalam kelas. Ahli persendirian tidak boleh diwarisi sementara ahli dilindungi boleh diwarisi tetapi dalam jarak terhad. Petunjuk ini menunjukkan keterlihatan ahli-ahli di mana swasta adalah lebih ketat daripada yang dilindungi.

Carta Perbandingan

Asas untuk perbandinganPeribadiDilindungi
Memperoleh harta ke kelas yang diturunkan
Kelas asal tidak boleh mengakses ahli kelas kelas asas.Kelas asal boleh mengakses ahli kelas dilindungi asas.
Kebolehcapaian
Ahli-ahli persendirian kelas tidak boleh diakses daripada skop kelas.Ahli dilindungi kelas tidak boleh diakses daripada skop kelas kecuali kelas yang diperolehi dengan segera.
Boleh diakses dari kelas sendiriYaYa
Boleh diakses dari kelas yang diturunkanTidakYa
Boleh diakses dari luarTidakTidak

Definisi Persendirian

Ahli kelas yang diisytiharkan sebagai peribadi hanya boleh diambil dalam kelas. Dengan kata lain, ahli-ahli yang diisytiharkan di bahagian persendirian kelas hanya boleh diakses oleh fungsi kawan dan fungsi ahli kelas. Ahli perseorangan tidak boleh diperolehi dengan kelas yang diperolehi secara langsung dan tidak boleh diakses daripada skop kelas.

Program C ++ menunjukkan konsep penunjuk akses peribadi.

 #include menggunakan ruang nama std; kelas A {private: int i; awam: tidak sah mendapatkan () {cout <> i; }}; kelas B: awam A {public: void show () {i ++; cout << "\ n Nombor masuk anda selepas incrementcpp"> # termasuk menggunakan ruang nama std; mamalia kelas {public: void mammalMethod (void) {cout << "Ia datang di bawah kategori mamalia." < 

Dalam program yang diberikan di atas, satu objek kelas kanak-kanak dicipta dengan nama "ob" dan fungsi ahli kelas induk boleh diakses menerusi memanggil kaedah kelas kanak-kanak "marine_mammalMethod". Walau bagaimanapun, kaedah ibu bapa tidak boleh diakses terus dengan objek "ob".

Definisi Perlindungan

Ahli kelas yang diisytiharkan sebagai dilindungi di dalam kelas hanya dapat diakses melalui fungsi anggota dan fungsi kawan kelas. Ahli-ahli yang dilindungi ini tidak boleh diakses daripada skop kelas kecuali kelas kanak-kanak (segera diperoleh daripadanya). Ia menyampaikan tujuan terhad dalam warisan dan mewarisi harta dengan cara yang terhad.

Program di bawah diberikan C ++ menggambarkan konsep penunjuk akses yang dilindungi.

 #include menggunakan ruang nama std; kelas account1 {protected: int x, y; // diakses kepada awam kelas yang diturunkan: void set (int a, int b) {x = a; y = b; } void show () {cout < 

Dalam contoh di atas, kelas kanak-kanak mewarisi sifat kelas asas kerana anggota data diisytiharkan sebagai orang awam atau dilindungi. Tidak akan mungkin jika x dan y telah diisytiharkan sebagai peribadi di kelas asas.

Perbezaan Utama Antara Swasta dan Dilindungi dalam C ++

  1. Kata kunci yang dilindungi boleh digunakan untuk membina ahli kelas yang bersifat peribadi kepada kelas mereka tetapi boleh diwarisi dan digunakan oleh kelas yang diturunkan. Sebaliknya, ini tidak mungkin semasa menggunakan peribadi, kerana ahli persendirian tidak boleh diwarisi terus ke kelas yang diturunkan.
  2. Apabila kelas asas diwarisi menggunakan penunjuk akses peribadi, ia menjadikan semua orang awam dan ahli kelas asas, ahli kelas yang diperolehi. Sebaliknya, ini tidak berlaku dalam penunjuk akses yang dilindungi.

Kesimpulannya

Swasta dan dilindungi adalah penunjuk akses yang digunakan untuk menetapkan keterlihatan kelas dan anggotanya secara berbeza. Bagaimanapun, perlindungan lebih fleksibel daripada peribadi.

Top