Модификатори за достъп до членовете на класа
Капсулирането (скриването на информацията) е механизъм който предпазва вътрешното представяне на данните. В обектно-ориентирането програмиране капсулирането е основна техника, която се използва за разпределяне на отговорностите между различните части на програмата.
Класовете в C++ имат силно развит механизъм за скриване на информацията. В основата му са спецификаторите за достъп – public
, private
и protected
. Чрез спецификаторите за достъп тялото на класа се разделя на секции – публична (public
), скрита (private
) и защитена (protected
). В зависимост от това в коя секция е дефиниран даден член на класа, той се превръща съответно в публичен, скрит или защитен.
Публичните членове на класа са достъпни от всички точки на програмата.
Скритите членове на класа са достъпни само в член-функциите на класа и в приятелите на класа.
Защитените членове се държат като публични за членовете на производните класове и като скрити за всички останали точки на програмата.
Като пример нека разгледаме класа Point, дефиниран по следния начин:
class Point { double x_, y_; public: void set_x(double x){x_=x;} }; int main() { Point p1, p2; p1.set_x(10.0); p2.x_=10.0; // грешка ... }
В ред 9 променяме състоянието на обекта p1
като се обръщаме към публичен член на класа – член-функцията set_x()
. Като резултат стойността на скритата член-променлива p1.x_
става 10. Ако се опитаме обаче директно да променим стойността на скрита член-променлива (вж. ред 10), то компилаторът ще даде съобщение за грешка.
Pingback: CPP-101: Кратък обзор на езика за програмиране C++ | Записки по програмиране
Pingback: CPP-101: Обработка на изключения | Записки по програмиране