Pengubah Akses C ++

Dalam tutorial ini, kita akan belajar tentang pengubah akses untuk kelas C ++ dengan bantuan contoh. Pengubah akses C ++ bersifat publik, pribadi, dan dilindungi.

Salah satu fitur utama bahasa pemrograman berorientasi objek seperti C ++ adalah penyembunyian data .

Penyembunyian data mengacu pada pembatasan akses ke anggota data kelas. Hal ini untuk mencegah fungsi dan kelas lain merusak data kelas.

Namun, penting juga untuk membuat beberapa fungsi anggota dan data anggota dapat diakses sehingga data yang tersembunyi dapat dimanipulasi secara tidak langsung.

Pengubah akses C ++ memungkinkan kita untuk menentukan anggota kelas mana yang dapat diakses oleh kelas dan fungsi lain, dan mana yang tidak.

Sebagai contoh,

 class Patient ( private: int patientNumber; string diagnosis; public: void billing() ( // code ) void makeAppointment() ( // code ) ); 

Di sini, variabel patientNumber dan diagnosis Patientkelas disembunyikan menggunakan privatekata kunci, sedangkan fungsi anggota dibuat dapat diakses menggunakan publickata kunci.

Jenis Pengubah Akses C ++

Di C ++, ada 3 pengubah akses:

  • public
  • private
  • protected

Pengubah Akses publik

  • Kata publickunci digunakan untuk membuat anggota publik (data dan fungsi).
  • Anggota publik dapat diakses dari bagian manapun dari program ini.

Contoh 1: C ++ Public Access Modifier

 #include using namespace std; // define a class class Sample ( // public elements public: int age; void displayAge() ( cout << "Age = " << age << endl; ) ); int main() ( // declare a class object Sample obj1; cout <> obj1.age; // call class function obj1.displayAge(); return 0; )

Keluaran:

 Masukkan umur anda: 20 Umur = 20

Dalam program ini, kami telah membuat kelas bernama Sample, yang berisi publicusia variabel dan publicfungsi displayAge().

Di main(), kami telah membuat sebuah objek dari Samplekelas bernama obj1. Kami kemudian mengakses elemen publik secara langsung dengan menggunakan kode obj.agedan obj.displayAge().

Pengubah Akses pribadi

  • Kata privatekunci digunakan untuk membuat anggota privat (data dan fungsi).
  • Anggota privat hanya dapat diakses dari dalam kelas.
  • Namun, kelas teman dan fungsi teman dapat mengakses anggota pribadi.

Contoh 2: C ++ Private Access Specifier

 #include using namespace std; // define a class class Sample ( // private elements private: int age; // public elements public: void displayAge(int a) ( age = a; cout << "Age = " << age << endl; ) ); int main() ( int ageInput; // declare an object Sample obj1; cout <> ageInput; // call function and pass ageInput as argument obj1.displayAge(ageInput); return 0; )

Keluaran:

 Masukkan umur anda: 20 Umur = 20

Di main(), objek obj1 tidak bisa langsung mengakses usia variabel kelas.

 // error cin>> obj1.age;

Kami hanya dapat secara tidak langsung memanipulasi usia melalui fungsi publik displayAge(), karena fungsi ini menetapkan usia ke argumen yang diteruskan ke dalamnya yaitu parameter fungsi int a.

Access Modifier yang dilindungi

Sebelum kita mempelajari tentang protectedpenentu akses, pastikan Anda mengetahui tentang pewarisan di C ++.

  • Kata protectedkunci digunakan untuk membuat anggota yang dilindungi (data dan fungsi).
  • Anggota yang dilindungi dapat diakses di dalam kelas dan dari kelas turunan.

Contoh 3: Access Specifier yang dilindungi C ++

 #include using namespace std; // declare parent class class Sample ( // protected elements protected: int age; ); // declare child class class SampleChild : public Sample ( public: void displayAge(int a) ( age = a; cout << "Age = " << age << endl; ) ); int main() ( int ageInput; // declare object of child class SampleChild child; cout <> ageInput; // call child class function // pass ageInput as argument child.displayAge(ageInput); return 0; )

Keluaran:

 Masukkan umur anda: 20 Umur = 20

Di sini, ChildSampleadalah kelas warisan yang diturunkan dari Sample. Usia variabel dideklarasikan Sampledengan protectedkata kunci.

Ini berarti bahwa ChildSampleusia dapat mengakses karena Samplekelas induknya.

Kami melihat ini karena kami telah menetapkan nilai usia ChildSamplemeskipun usia dinyatakan di Samplekelas.

Ringkasan: publik, pribadi, dan dilindungi

  • public elemen dapat diakses oleh semua kelas dan fungsi lainnya.
  • privateelemen tidak dapat diakses di luar kelas tempat mereka dideklarasikan, kecuali oleh friendkelas dan fungsi.
  • protectedelemen seperti itu private, kecuali mereka dapat diakses oleh kelas turunan.
Penentu Kelas yang sama Kelas Turunan Di Luar Kelas
public Iya Iya Iya
private Iya Tidak Tidak
protected Iya Iya Tidak

Catatan: Secara default, anggota kelas di C ++ private, kecuali ditentukan lain.

Artikel yang menarik...