Data hiding เป็นคุณสมบัติสำคัญของ OOP ป้องกันไม่ให้ฟังก์ชันภายนอกเข้าถึงข้อมูลภายในคลาสโดยตรง การจำกัดการเข้าถึงกำหนดด้วย access modifiers 3 ระดับ:
ค่าเริ่มต้น (default) ของ member และ class คือ private
ตัวอย่างโครงสร้างคลาส
class Base {
public:
// public members
protected:
// protected members
private:
// private members
};
รายละเอียดแต่ละระดับ
- public: เข้าถึงได้จากทุกที่ในโปรแกรม (นอกคลาสด้วย) สามารถ set/get ค่าโดยตรง
- private: เข้าถึงไม่ได้จากนอกคลาส เห็นไม่ได้ แก้ไม่ได้ เฉพาะคลาสเองและ friend functions เท่านั้น
- protected: คล้าย private แต่เพิ่มสิทธิ์: เข้าถึงได้ใน derived classes (คลาสลูก) ด้วย