C++ Class Inheritance Private Members

3 min read Jul 01, 2024
C++ Class Inheritance Private Members

Memahami Konsep Private Members pada Pewarisan Class di C++

Dalam pemrograman C++, pewarianan class (inheritance) memungkinkan kita untuk membangun kelas baru (kelas turunan) yang mewarisi properti dan perilaku dari kelas yang sudah ada (kelas induk). Salah satu aspek penting dalam pewarisan adalah bagaimana private members dari kelas induk ditangani oleh kelas turunan.

Private Members dan Pewarisan

Private members, yang dideklarasikan menggunakan keyword private, adalah anggota kelas yang hanya dapat diakses di dalam kelas itu sendiri. Mereka tidak dapat diakses secara langsung oleh kelas turunan.

Contoh:

class Base {
private:
    int privateData;
public:
    Base(int data) : privateData(data) {}
    int getPrivateData() { return privateData; }
};

class Derived : public Base {
public:
    Derived(int data) : Base(data) {}
    // Tidak dapat mengakses privateData secara langsung
    // int getData() { return privateData; }  // Error!
};

Pada contoh di atas, privateData adalah anggota private dari kelas Base. Kelas Derived mewarisi dari Base, tetapi tidak dapat mengakses privateData secara langsung.

Akses Private Members Melalui Method Public

Jika kita ingin mengakses private members dari kelas induk di kelas turunan, kita harus menggunakan method public yang disediakan oleh kelas induk.

Dalam contoh sebelumnya, kelas Base menyediakan method getPrivateData() untuk mengakses privateData. Kelas Derived dapat memanggil method ini untuk mendapatkan nilai privateData.

Contoh:

Derived obj(10);
int data = obj.getPrivateData();  // Akses privateData melalui method public

Tujuan Private Members

Tujuan utama dari private members adalah untuk menghindari akses langsung dan melindungi data dari modifikasi yang tidak sah. Dengan mendeklarasikan anggota sebagai private, kita memastikan bahwa data tersebut hanya dapat diakses dan dimodifikasi melalui method yang disediakan oleh kelas.

Kesimpulan

Private members pada class tidak dapat diakses langsung oleh kelas turunan. Untuk mengakses mereka, kita harus menggunakan method public yang disediakan oleh kelas induk. Hal ini membantu menjaga kapsulasian data dan memastikan bahwa data diakses dan dimodifikasi dengan cara yang aman dan terkontrol.