Home » C++ » Akses Specifier di C++ – Kode dan Contohnya

Akses Specifier di C++ – Kode dan Contohnya

by Hanifah Nurbaeti
by Hanifah Nurbaeti

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 kelas
  • private – anggota tidak dapat diakses (atau dilihat) dari luar kelas
  • protected – 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 
};

You may also like