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 Patient
kelas disembunyikan menggunakan private
kata kunci, sementara fungsi anggota dapat diakses menggunakan public
kata kunci.
Jenis Pengubah Akses C ++
Di C ++, terdapat 3 pengubah akses:
public
private
protected
Pengubah Akses awam
- Kata
public
kunci 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 public
umur dan public
fungsi yang berubah - ubah displayAge()
.
Di main()
, kami telah membuat objek Sample
kelas bernama obj1. Kami kemudian mengakses elemen awam secara langsung dengan menggunakan kod obj.age
dan obj.displayAge()
.
Pengubah Akses peribadi
- Kata
private
kunci 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 protected
penentu akses, pastikan anda mengetahui mengenai peninggalan di C ++.
- Kata
protected
kunci 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, ChildSample
adalah kelas warisan yang berasal dari Sample
. Umur berubah-ubah dinyatakan Sample
dengan protected
kata kunci.
Ini bermakna ChildSample
boleh memasuki usia kerana Sample
kelas induknya.
Kami melihat ini kerana kami telah menetapkan nilai usia ChildSample
walaupun usia dinyatakan di Sample
kelas.
Ringkasan: awam, swasta, dan dilindungi
public
elemen boleh diakses oleh semua kelas dan fungsi lain.private
elemen tidak dapat diakses di luar kelas di mana mereka dinyatakan, kecuali olehfriend
kelas dan fungsi.protected
elemen sama sepertiprivate
, 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.