هر عضو یک کلاس می تواند یکی از سه حالات مختلف زیر را داشته باشد: عمومی(public)، خصوصی (private) یا محافظت شده (protected). به طور پیش فرض تمام اعضای کلاس خصوصی هستند و امکان دسترسی به آنها خارج از کلاس ممکن نیست مگر اینکه توسط حوزه های دسترسی به عنوان عموی یا محافظت شده تعریف شوند.

حوزه های دسترسی (access modifiers) توسط کلمات زیر مشخص می شوند:

۱• private. اعضایی که به صورت خصوصی مشخص می شوند تنها درون کلاس توسط توابع عضو و توابع دوست قابل دسترسی هستند و نمی توانند خارج از کلاس دسترسی شود.
۲• public. اعضای عمومی از هر تابعی حتی خارج از کلاس قابل دستیابی هستند.
۳• protected. اعضای محافظت شده نمی توانند بیرون از کلاس دسترسی شوند اما توسط توابع عضو خودش و توابع دوست و از کلاسی که از آن مشتق شده قابل دسترسی هستند.

نکته. در یک ساختمان همه اعضا عمومی هستند مگر اینکه آنرا به عنوان خصوصی یا محافظت شده تعریف کنید.

مثال. متغیر number عضو خصوصی و تابع greeting عضو عمومی کلاس زیر هستند

class myclass {
int number;
public:    void greeting();
};

نکته.

در یک ساختمان همه اعضا عمومی هستند مگر اینکه آنرا به عنوان خصوصی یا محافظت شده تعریف کنید.

مثال.

در ساختمان A توابع عضو به صورت عمومی تعریف شده اند و فیلدها به صورت خصوصی هستند.

struct A {
private:
int i, j, k;
public:
int f() {return i + j + k;}
void g() {i = j = k = 0;}
};