§ 2. Классы
2.1. Структура класса
Напомним основные понятия, связанные с описанием класса. В примере 2.1 используется класс Student. Имя класса принято писать с заглавной буквы. В общем виде описание класса выглядит следующим образом: class имя_класса { private: /* список свойств и методов для использования внутри класса */ public: /* список методов, доступных другим функциям и объектам программы */ protected: /*список средств, доступных для дружественных классов и наследников*/ }; Все свойства и методы классов имеют права доступа. По умолчанию все содержимое класса является доступным для чтения и записи только для него самого. Для того чтобы разрешить доступ к данным класса извне, используют модификатор доступа public. Все функции и переменные, которые находятся после модификатора public, становятся доступными из всех частей программы. Закрытые данные класса размещаются после модификатора доступа private. Если отсутствует модификатор public, то все функции и переменные по умолчанию являются закрытыми. Обычно приватными делают все поля класса, а публичными — его методы. Все действия с закрытыми полями класса реализуются через его методы. Поскольку метод в классе является функцией, то и описывают методы так же, как описывают функции. Объявляют методы внутри класса, а определение методов может быть как внутри класса, так и вне его. Определение методов вне класса позволяет при необходимости легко вынести их в отдельный файл. Определения методов класса очень похоже на обычные определения функций. Каждый из методов имеет заголовок и тело, может иметь тип возвращаемого значения и параметры. Но есть и отличия:
Поскольку данные в классе являются приватными, пользователь не может напрямую определить или изменить значения данных. Для этих целей используются специальные методы. В классах принято объявлять так называемые set- и get-функции (в русскоязычной литературе их иногда называют сеттеры и геттеры), с помощью которых можно работать с элементами данных. Таких функций в классе может быть несколько. На объекты классов, как и на объекты других типов, можно определять указатели. Затем через указатель можно обращаться к членам класса — переменным и методам (пример 2.2). Однако если при обращении через обычную переменную используется символ точка, то для обращения к членам класса через указатель применяется стрелка «–>» (знаки «минус» и «больше»). [1] Значок обозначает операцию «раскрытие области видимости». |
Пример 2.1. Программа для решения следующей задачи: «Прочитать из текстового файла данные о студентах (фамилия, город, год рождения, отметки ЦТ) и вывести в файл в порядке убывания суммарного балла фамилии, город и суммарный балл».
Пример 2.2. Обращение через указатель к членам класса Date (пример 22.5 учебного пособия 10 класса, http://profil.adu.by/mod/book/view.php?id=3574&chapterid=10521#pr5).
Изменения по указателю d5 в данном случае приведут к изменениям объекта d4. В результате выполнения команд будет выведено 17.3. |