К Т П           План занятия                                                              1                                           Страницы  | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 |

2. Доступ к членам структур

Когда мы объявляем переменную структуры, например, Employee john, то john ссылается на всю структуру. Для того, чтобы получить доступ к отдельным её членам, используется оператор выбора члена (.). Например, в коде, приведенном ниже, мы используем оператор выбора членов для инициализации каждого члена структуры:

Employee john; // создаем отдельную структуру Employee для John
john.id = 8; // присваиваем значение члену id структуры john
john.age = 27; // присваиваем значение члену age структуры john
john.salary = 32.17; // присваиваем значение члену salary структуры john
Employee james; // создаем отдельную структуру Employee для James
james.id = 9; // присваиваем значение члену id структуры james
james.age = 30; // присваиваем значение члену age структуры james
james.salary = 28.35; // присваиваем значение члену salary структуры james

Как и в случае с обычными переменными, переменные-члены структуры не инициализируются автоматически и обычно содержат мусор. Инициализировать их нужно вручную.

В примере, приведенном выше, легко определить, какая переменная относится к структуре John, а какая — к структуре James. Это обеспечивает гораздо более высокий уровень организации, чем в случае с обычными отдельными переменными.

Переменные-члены структуры работают так же, как и простые переменные, поэтому с ними можно выполнять обычные арифметические операции и операции сравнения:

int totalAge = john.age + james.age;
if (john.salary > james.salary)
    cout << "John makes more than James\n";
else if (john.salary < james.salary)
    cout << "John makes less than James\n";
else
    cout << "John and James make the same amount\n";
// James получил повышение в должности
james.salary += 3.75;
// Сегодня день рождения у John
++john.age; // используем пре-инкремент для увеличения возраста John на 1 год

 

 

 

 


Предыдущая        В начало страницы       Следующая
2