Важной чертой объектно-ориентированного программирования является инкапсуляция данных — сокрытие части информации путем объявления элементов класса частными (private). В отличие от общих (public) элементов, к которым можно обратиться из любого места программы, используя оператор-точку, к частным элементам можно обратиться только через функции (методы) класса.
В том случае, когда значения элементов используются только внутри класса и обращаться к ним из основной программы не нужно, а также с целью сокращения количества ошибок в программе целесообразно объявить эти элементы частными (private). Если при описании класса опущена метка public, то элементы класса также считаются частными.
В приведенной ниже программе элементы name и sal класса zp объявлены как частные. Функции (методы) класса объявлены как
общие:
in_dat - функция, используемая основной программой для ввода исходных данных (имени служащего и оклада);
show_sal -функция, обеспечивающая вывод на экран частных элементов данных (name и sal);
change_sal - функция, позволяющая обратиться и скорректировать частный элемент данных (sal).
Пример
#include<iostream.h>
#include<string.h>
class zp
{
private: //объявление частных элементов
char name[64];
float sal;
public: //объявление общих элементов
void in_dat(char *,float); //прототипы функций
void show_sal(void); float change_sal(float);
};
void zp::in_dat(char *new_name,float old_sal)
{
strcpy(name,new_name);
sal=old_sal;}
void zp::show_sal(void)
{
cout<<"оклад "<<name<<": "<<sal<<" рублей. "«endl;
}
float zp :: change_sal (float new_sal)
{
if(new_sal<2000)
{
cout<<"Новый оклад "<<name
<<" недопустимо мал ! "<<endl;
return (0);
}
sal=new_sal;
return (1);
}
void main(void)
{float new_sal;
zp father; //объявление объекта father
father.in_dat("Худанина H.M.", 2000.0);
cout<<"Старый ";
fatner.show_sal() ;
cout<<"Введите новый оклад:";
cin>>new_sal;
if (father.change_sal (new__sal)! =0)
{
cout<<”Новый ”;
father.show_ sal();
}
}
В результате решения этой программы на экран дисплея будет выведено:
Старый оклад Худанина Н.М.: 2000 рублей.
Введите новый оклад: 3000
Новый оклад Худанина Н.М.: 3000 рублей.
При вводе значения оклада <2000 третья строка будет выглядеть так: Новый оклад Худанина Н.М. недопустимо мал!
Таким образом, главной программе (main) известны лишь методы (in_dat, show_sal, change_sal), позволяющие работать с объектом (father). Элементы данных (name, sal) и способы обработки этих элементов скрыты от главной программы..