Access Specifiers
Sekarang, kita sudah cukup familiar dengan kata kunci public :
Contoh:
#include <iostream> using namespace std; class MyClass { // The class public: // Akses specifier public int x; // Atribut public (int variable) }; int main() { MyClass myObj; // Buat objek MyClass // Akses atribut dan set nilai myObj.x = 15; // Cetak nilai cout << myObj.x; return 0; }
Kata kunci public adalah penentu akses. Penentu akses menentukan bagaimana anggota (atribut dan metode) kelas dapat diakses. Dalam contoh di atas, anggota bersifat public, yang berarti mereka dapat diakses dan dimodifikasi dari luar kode.
Namun, bagaimana jika kita ingin anggota menjadi pribadi dan tersembunyi dari kelas?
Di 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.
Dalam contoh berikut merupakan perbedaan antara anggota public dan private:
Contoh:
class MyClass {
public: // Akses specifier public
int x; // Atribut public
private: // Akses specifier private
int y; // Atribut private
};
int main() {
MyClass myObj;
myObj.x = 25; // Diizinkan (public)
myObj.y = 50; // Tidak diizinkan (private)
return 0;
}Jika mencoba mengakses anggota pribadi, kesalahan terjadi seperi berikut:

Catatan: Dimungkinkan untuk mengakses anggota private kelas menggunakan metode public di dalam kelas yang sama.
Tip: Mendeklarasikan atribut kelas sebagai private (sesering mungkin) merupakan praktik yang baik. Ini akan mengurangi kemungkinan diri untuk mengacaukan kode. Hal ini juga merupakan bahan utama dari konsep Enkapsulasi.
Catatan: Secara default, semua anggota kelas bersifat private jika kita tidak menentukan penentu akses:
Contoh :
class MyClass {
int x; // Atribut Private
int y; // Atribut Private
};