Геттеры и сеттеры Вы должно быть заметили, что как только мы поставили private к определению
класса Player, мы больше не можем считывать или записывать имя игрока извне
класса Player.
Если мы попытаемся и считаем имя с помощью следующего кода:
Player me;
cout << me.name << endl;
Или запишем имя вот так:
me.name = "William";
Используя определение struct Player с private элементами, мы получим следующую
ошибку:
main.cpp(24) : error C2248: 'Player::name' : cannot access private member declared in class 'Player'
(невозможно получить доступ к частным элементам, объявленным в классе Player)
Это просто то, чего мы и просили, когда обозначали поле name как private. Мы
сделали его совсем недоступным снаружи класса Player.
Геттеры Геттер – получатель (также известен как функция доступа), используется, чтобы
передавать обратно вызывающему, копии внутренних элементов данных. Чтобы
считать имя игрока, мы украшаем класс Player функцией-членом специально,
чтобы извлечь копию этого частного (private) элемента данных.
class Player
{
private:
string name; //
недоступно снаружи этого класса!
//
остальная часть класса, как и прежде
public:
//
Функция геттер извлекает копию переменной для вас
string getName()
{
return name;
}
};
115 |
С т р а н и ц а
Итак, теперь возможно считывать информацию об имени игрока. Мы можем
делать это, используя следующее утверждение кода:
cout << player.getName() << endl;
Геттеры используются для извлечения частных элементов, которые иначе будут
недоступны снаружи класса.