Класс представляет собой абстрактный тип данных, который объединяет в себе некие данные и код, предназначенный для выполнения действий над этими данными. Тесно связано с классом понятие объекта. Объект – это экземпляр класса, который непосредственно используется в программе для хранения и обработки данных. В этом плане понятия классов и объектов очень напоминают понятия типа данных и переменной.
Чтобы использовать в программе тип данных надо объявить переменную этого типа.
Чтобы использовать в программе класс надо объявить объект этого класса.
Можно использовать класс и без объявления его объектов – с помощью статических членов класса. Но рассмотрение этого вопроса выходит за рамки данного пособия.
В общем случае при объявлении класса указываются данные, которые он будет хранить и действия, которые будут над ними выполняться. В простых классах один из этих компонентов может отсутствовать, но обычно описываются они оба. Для хранения данных используются переменные, называемые полями. Для обработки данных в классе объявляются функции, называемые методами. Поля и методы вместе называются членами класса.
Обобщенный формат объявления класса имеет следующий вид:
class имя_класса {
закрытые поля и методы
public:
открытые поля и методы
};
Это объявление создает в программе класс с указанным именем. Это имя будет трактоваться как имя нового типа, которое затем будет использовано для создания объектов этого класса.
Как видно из формата объявления, любой класс может содержать как открытые, так и закрытые члены.
К закрытым членам могут получать доступ только другие члены этого класса; из остальной части программы доступ к ним запрещён. Такие члены обозначаются ключевым словом (спецификатором доступа) private. Т.к. в классе все члены по умолчанию считаются закрытыми, указывать его не обязательно.
Открытые (общие) члены доступны из любого места программы, не только из этого же класса. Для их объявления используется ключевое слово (спецификатор доступа) public.
Существует ещё один спецификатор доступа – protected. С его помощью задаются защищенные члены класса, доступ к которым имеют методы самого класса, а также методы его наследников.
Обычно поля, которые используются для хранения данных класса, объявляются закрытыми. А для доступа к ним из программы применяются открытые методы. Тем самым программист, создающий класс, запрещает другим программистам, которые будут использовать его класс, непосредственно обращаться к данным. Это делается в качестве защиты от неправильной обработки данных. Например, при создании класса массива методы могут контролировать выход индекса за границы массива, правильность записываемых данных и т.д.
Создается класс FIO, состоящий из трех полей и одного метода. Все его члены являются общими, т.е. доступны из любой части программы. Метод print позволяет вывести на экран значения полей объекта.