×
Traktatov.net » Язык программирования C++. Пятое издание » Читать онлайн
Страница 18 из 714 Настройки

Не забывайте, что существуют и другие способы оформления кода. При выборе стиля оформления учитывайте удобочитаемость кода, а выбрав стиль, придерживайтесь его неукоснительно на протяжении всей программы.

1.5. Введение в классы

Единственное средство, которое осталось изучить перед переходом к решению проблемы книжного магазина, — это определение структуры данных для хранения данных транзакций. Для определения собственных структур данных язык С++ предоставляет классы (class). Класс определяет тип данных и набор операций, связанных с этим типом. Механизм классов — это одно из важнейших средств языка С++. Фактически основное внимание при проектировании приложения на языке С++ уделяют именно определению различных типов классов (class type), которые ведут себя так же, как встроенные типы данных.

В этом разделе описан простой класс, который можно использовать при решении проблемы книжного магазина. Реализован этот класс будет в следующих главах, когда читатель больше узнает о типах, выражениях, операторах и функциях.

Чтобы использовать класс, необходимо знать следующее.

1. Каково его имя?

2. Где он определен?

3. Что он делает?

Предположим, что класс для решения проблемы книжного магазина имеет имя >Sales_item, а определен он в заголовке >Sales_item.h.

Как уже было продемонстрировано на примере использования таких библиотечных средств, как объекты ввода и вывода, в код необходимо включить соответствующий заголовок. Точно так же заголовки используются для доступа к классам, определенным для наших собственных приложений. Традиционно имена файлов заголовка совпадают с именами определенных в них классов. У написанных нами файлов заголовка, как правило, будет суффикс >.h, но некоторые программисты используют расширение >.H, >.hpp или >.hxx. У заголовков стандартной библиотеки обычно нет никакого суффикса вообще. Компиляторы, как правило, не заботятся о форме имен файлов заголовка, но интегрированные среды разработки иногда это делают.

1.5.1. Класс >Sales_item

Класс >Sales_item предназначен для хранения ISBN, а также для отслеживания количества проданных экземпляров, полученной суммы и средней цены проданных книг. Не будем пока рассматривать, как эти данные сохраняются и вычисляются. Чтобы применить класс, необходимо знать, что он делает, а не как.

Каждый класс является определением типа. Имя типа совпадает с именем класса. Следовательно, класс >Sales_item определен как тип >Sales_item. Подобно встроенным типам данных, вполне можно создать переменную типа класса. Рассмотрим пример.

>Sales_item item;

Этот код создает объект >item типа >Sales_item. Как правило, об этом говорят так: создан "объект типа >Sales_item", или "объект класса >Sales_item", или даже "экземпляр класса >Sales_item".

Кроме создания переменных типа >Sales_item, с его объектами можно выполнять следующие операции.

• Вызывать функцию >isbn(), чтобы извлечь ISBN из объекта класса >Sales_item.

• Использовать операторы ввода (>>>) и вывода (><<), чтобы читать и отображать объекты класса >Sales_item.

• Использовать оператор присвоения (>=