Pengubah Akses C ++

Dalam tutorial ini, kita akan belajar mengenai pengubah akses untuk kelas C ++ dengan bantuan contoh. Pengubah akses C ++ bersifat awam, peribadi, dan dilindungi.

Salah satu ciri utama bahasa pengaturcaraan berorientasikan objek seperti C ++ adalah penyembunyian data .

Penyembunyian data merujuk kepada menyekat akses kepada data anggota kelas. Ini untuk mengelakkan fungsi dan kelas lain mengganggu data kelas.

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

Pengubah akses C ++ membolehkan kita menentukan anggota kelas mana yang dapat diakses ke 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, pemboleh ubah bilangan pesakit dan diagnosis Patientkelas disembunyikan menggunakan privatekata kunci, sementara fungsi anggota dapat diakses menggunakan publickata kunci.

Jenis Pengubah Akses C ++

Di C ++, terdapat 3 pengubah akses:

  • public
  • private
  • protected

Pengubah Akses awam

  • Kata publickunci digunakan untuk membuat anggota awam (data dan fungsi).
  • Anggota awam boleh diakses dari mana-mana bahagian program.

Contoh 1: Pengubah Akses awam C ++

 #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; )

Pengeluaran:

 Masukkan umur anda: 20 Umur = 20

Dalam program ini, kami telah membuat kelas bernama Sample, yang mengandungi publicumur dan publicfungsi yang berubah - ubah displayAge().

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

Pengubah Akses peribadi

  • Kata privatekunci digunakan untuk membuat anggota peribadi (data dan fungsi).
  • Ahli persendirian boleh diakses hanya dari dalam kelas.
  • Walau bagaimanapun, kelas rakan dan fungsi rakan boleh mengakses ahli persendirian.

Contoh 2: Penentu Akses peribadi C ++

 #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; )

Pengeluaran:

 Masukkan umur anda: 20 Umur = 20

Dalam main(), objek obj1 tidak dapat langsung mengakses kelas berubah usia.

 // error cin>> obj1.age;

Kita hanya secara tidak langsung dapat memanipulasi usia melalui fungsi umum displayAge(), kerana fungsi ini memberikan usia kepada argumen yang dilaluinya iaitu parameter fungsi int a.

Pengubah Akses dilindungi

Sebelum kita mengetahui mengenai protectedpenentu akses, pastikan anda mengetahui mengenai peninggalan di C ++.

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

Contoh 3: Penentu Akses 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; )

Pengeluaran:

 Masukkan umur anda: 20 Umur = 20

Di sini, ChildSampleadalah kelas warisan yang berasal dari Sample. Umur berubah-ubah dinyatakan Sampledengan protectedkata kunci.

Ini bermakna ChildSampleboleh memasuki usia kerana Samplekelas induknya.

Kami melihat ini kerana kami telah menetapkan nilai usia ChildSamplewalaupun usia dinyatakan di Samplekelas.

Ringkasan: awam, swasta, dan dilindungi

  • public elemen boleh diakses oleh semua kelas dan fungsi lain.
  • privateelemen tidak dapat diakses di luar kelas di mana mereka dinyatakan, kecuali oleh friendkelas dan fungsi.
  • protectedelemen sama seperti private, kecuali mereka boleh diakses oleh kelas turunan.
Penentu Sama kelas Kelas Berasal Kelas Luar
public Ya Ya Ya
private Ya Tidak Tidak
protected Ya Ya Tidak

Catatan: Secara lalai, ahli kelas dalam C ++ adalah private, kecuali dinyatakan sebaliknya.

Artikel menarik...