Бьерн Страуструп - Язык программирования С++. Главы 5-7 - Функции-члены
ОГЛАВЛЕНИЕ
Страница 4 из 70
 5.2.1 Функции-члены
Посмотрим, как можно представить в языке понятие даты, используя для этого тип структуры и набор функций, работающих с переменными этого типа:       struct date { int month, day, year; };
       date today;
       void set_date(date*, int, int, int);
       void next_date(date*);
       void print_date(const date*);
       // ...Никакой явной связи между функциями и структурой date нет. Ее можно установить, если описать функции как члены структуры:       struct date {
           int month, day, year;
           void set(int, int, int);
           void get(int*, int* int*);
           void next();
           void print();
       };Описанные таким образом функции называются функциями-членами. Их можно вызывать только через переменные соответствующего типа, используя стандартную запись обращения к члену структуры:date today;Поскольку разные структуры могут иметь функции-члены с одинаковыми именами, при определении функции-члена нужно указывать имя структуры:
date my_birthday;
void f()
{
my_birthday.set(30,12,1950);
today.set(18,1,1991);
my_birthday.print();
today.next();
}
void date::next()В теле функции-члена имена членов можно использовать без указания имени объекта. В таком случае имя относится к члену того объекта, для которого была вызвана функция.
{
if (++day > 28 ) {
// здесь сложный вариант
}
}
