У розглянутих|розгледіти| раніше прикладах|зразках| класів компоненти класів є|з'являються,являються| загальнодоступними. У будь-якому місці програми, де “видно|показно|” визначення класу, можна дістати доступ до компонентів об'єкта класу. Тим самим не виконується основний принцип абстракції даних – інкапсуляція (приховування|приховання|) даних усередині об'єкта. Для зміни видимості компонентів у визначенні класу можна використовувати специфікатори доступу: public, private, protected.
Загальнодоступні (public) компоненти доступні у будь-якій частині|частці| програми. Вони можуть використовуватися будь-якою функцією як усередині даного класу, так і поза|зовні| ним. Доступ ззовні здійснюється через ім'я об'єкта:
ім’я_об’єкта. ім’я_члена_класу
посилання_на_об’єкт. ім’я_члена_класу
покажчик_на_об’єкт. ім’я_члена_класу
Приватні (private) компоненти локалізовані в класі й не доступні ззовні. Вони можуть використовуватися функціями – членами даного класу і функціями – “друзями” того класу, в якому вони описані.
Захищені (protected) компоненти доступні всередині класу і у похідних класах - нащадках.
Змінити|поміняти| статус доступу до компонентів класу можна і за допомогою використання у визначенні класу ключового|джерельного| слова class. В цьому випадку всі компоненти класу за умовчанням є|з'являються,являються| приватними
Приклад|зразок|.
class complex
{
double re, im; // private за умовчанням
public:
double real(){return re;}
double imag(){return im;}
void set(double x,double у|в,біля|){re = x; im = у|в,біля|;}
};