Penentu Akses C++
penentu akses
Sekarang, Anda cukup familiar dengan public
kata kunci yang muncul di semua contoh kelas kami:
Contoh
class MyClass { // The class
public: // Access specifier
// class members goes here
};
Kata public
kuncinya adalah penentu akses.
Penentu akses menentukan bagaimana anggota (atribut dan metode) suatu kelas dapat diakses. Pada contoh di atas, anggotanya adalah public
- yang artinya dapat diakses dan dimodifikasi dari luar kode.
Namun, bagaimana jika kita ingin anggota bersifat pribadi dan tersembunyi dari dunia luar?
Dalam C++, ada tiga penentu akses:
public
- anggota dapat diakses dari luar kelasprivate
- anggota tidak dapat diakses (atau dilihat) dari luar kelasprotected
- anggota tidak dapat diakses dari luar kelas, namun mereka dapat diakses di kelas yang diwariskan. Anda akan mempelajari lebih lanjut tentang Warisan nanti.
Dalam contoh berikut, kami menunjukkan perbedaan antara public
dan private
anggota:
Contoh
class
MyClass {
public: // Public access
specifier
int x; // Public attribute
private: // Private access specifier
int y; // Private attribute
};
int main() {
MyClass
myObj;
myObj.x = 25; // Allowed (public)
myObj.y = 50; //
Not allowed (private)
return 0;
}
Jika Anda mencoba mengakses anggota pribadi, terjadi kesalahan:
error: y is private
Catatan: Dimungkinkan untuk mengakses anggota pribadi suatu kelas menggunakan metode publik di dalam kelas yang sama. Lihat bab berikutnya ( Enkapsulasi ) tentang cara melakukan ini.
Tip: Merupakan praktik yang baik untuk mendeklarasikan atribut kelas Anda sebagai pribadi (sesering mungkin). Ini akan mengurangi kemungkinan Anda (atau orang lain) untuk mengacaukan kode. Ini juga merupakan bahan utama dari konsep Enkapsulasi , yang akan Anda pelajari lebih lanjut di bab berikutnya.
Catatan: Secara default, semua anggota kelas adalah private
jika Anda tidak menentukan penentu akses:
Contoh
class
MyClass {
int x; // Private attribute
int y; // Private attribute
};