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 Patient
kelas disembunyikan menggunakan private
kata kunci, sedangkan fungsi anggota dibuat dapat diakses menggunakan public
kata kunci.
Jenis Pengubah Akses C ++
Di C ++, ada 3 pengubah akses:
public
private
protected
Pengubah Akses publik
- Kata
public
kunci 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 public
usia variabel dan public
fungsi displayAge()
.
Di main()
, kami telah membuat sebuah objek dari Sample
kelas bernama obj1. Kami kemudian mengakses elemen publik secara langsung dengan menggunakan kode obj.age
dan obj.displayAge()
.
Pengubah Akses pribadi
- Kata
private
kunci 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 protected
penentu akses, pastikan Anda mengetahui tentang pewarisan di C ++.
- Kata
protected
kunci 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, ChildSample
adalah kelas warisan yang diturunkan dari Sample
. Usia variabel dideklarasikan Sample
dengan protected
kata kunci.
Ini berarti bahwa ChildSample
usia dapat mengakses karena Sample
kelas induknya.
Kami melihat ini karena kami telah menetapkan nilai usia ChildSample
meskipun usia dinyatakan di Sample
kelas.
Ringkasan: publik, pribadi, dan dilindungi
public
elemen dapat diakses oleh semua kelas dan fungsi lainnya.private
elemen tidak dapat diakses di luar kelas tempat mereka dideklarasikan, kecuali olehfriend
kelas dan fungsi.protected
elemen seperti ituprivate
, 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.