Direkomendasikan, 2024

Pilihan Editor

Perbedaan antara Pribadi dan Dilindungi dalam C ++

Ada tiga jenis perlindungan akses yang didefinisikan dalam bahasa pemrograman C ++ untuk menyembunyikan data. Menyembunyikan data adalah bagian penting dari pemrograman berorientasi objek. Kata kunci pribadi dan yang dilindungi menawarkan tingkat perlindungan akses untuk menyembunyikan data dan fungsi dalam suatu kelas. Anggota pribadi tidak dapat diwarisi sementara anggota yang dilindungi dapat diwarisi tetapi dalam kisaran terbatas. Penentu ini menunjukkan visibilitas anggota di mana pribadi lebih membatasi daripada dilindungi.

Grafik perbandingan

Dasar untuk perbandinganPribadiTerlindung
Mewarisi properti ke kelas turunan
Kelas turunan tidak dapat mengakses anggota pribadi kelas dasar.Kelas turunan dapat mengakses anggota yang dilindungi kelas dasar.
Aksesibilitas
Anggota pribadi kelas tidak dapat diakses dari ruang kelas.Anggota kelas yang dilindungi tidak dapat diakses dari ruang kelas kecuali kelas yang diturunkan dengan segera.
Dapat diakses dari kelas sendiriiya nihiya nih
Dapat diakses dari kelas turunanTidakiya nih
Dapat diakses dari luarTidakTidak

Definisi Pribadi

Anggota kelas yang dinyatakan sebagai pribadi hanya dapat diambil di dalam kelas. Dengan kata lain, anggota yang dideklarasikan di bagian pribadi kelas hanya dapat diakses oleh fungsi teman dan fungsi anggota kelas. Anggota pribadi tidak dapat diperoleh ke kelas turunan secara langsung dan tidak dapat diakses di luar ruang lingkup kelas.

Program C ++ menunjukkan konsep penentu akses pribadi.

 #include using namespace std; kelas A {pribadi: int i; publik: void get () {cout <> i; }}; kelas B: publik A {publik: void show () {i ++; cout << "\ n Nomor yang Anda masukkan setelah incrementcpp"> # sertakan menggunakan namespace std; class mammal {public: void mammalMethod (void) {cout << "Itu termasuk dalam kategori mamalia." < 

Dalam program yang diberikan di atas, satu objek dari kelas anak dibuat dengan nama "ob" dan fungsi anggota dari kelas induk dapat diakses melalui pemanggilan metode kelas anak "marine_mammalMethod". Meskipun, metode induk tidak dapat diakses secara langsung dengan objek "ob".

Definisi Dilindungi

Anggota kelas yang dinyatakan dilindungi dalam kelas hanya dapat diakses melalui fungsi anggota dan fungsi teman kelas. Anggota yang dilindungi ini tidak dapat diakses dari ruang kelas kecuali kelas anak (langsung berasal dari itu). Ini melayani tujuan terbatas dalam pewarisan dan mewarisi properti secara terbatas.

Program C ++ yang diberikan di bawah ini mengilustrasikan konsep penentu akses yang dilindungi.

 #include using namespace std; class account1 {protected: int x, y; // dapat diakses oleh publik kelas turunan: void set (int a, int b) {x = a; y = b; } membatalkan show () {cout < 

Dalam contoh di atas, kelas anak mewarisi sifat-sifat kelas dasar karena anggota data dinyatakan sebagai publik atau dilindungi. Tidak akan mungkin jika x dan y telah dinyatakan sebagai pribadi di kelas dasar.

Perbedaan Kunci Antara Pribadi dan Dilindungi dalam C ++

  1. Kata kunci yang dilindungi dapat digunakan untuk membangun anggota kelas yang pribadi untuk kelas mereka tetapi dapat diwarisi dan digunakan oleh kelas turunan. Sebaliknya, ini tidak mungkin saat menggunakan pribadi, karena anggota pribadi tidak dapat diwarisi langsung ke kelas turunan.
  2. Ketika kelas dasar diwarisi menggunakan specifier akses pribadi, itu membuat semua anggota kelas dasar yang dilindungi dan publik, anggota pribadi dari kelas turunan. Sebagai lawan, ini tidak terjadi pada penentu akses yang dilindungi.

Kesimpulan

Pribadi dan terlindungi adalah penentu akses yang digunakan untuk mengatur visibilitas kelas dan anggotanya secara berbeda. Namun, dilindungi lebih fleksibel daripada pribadi.

Top