■ Не гибко.Когда-нибудь мне потребуется поменять свою микроволновую печь на печь другого типа. Я смогу это сделать без проблем, если интерфейс печи можно будет оставить старым. Без чётко очерченных областей действия, а также без разделения интерфейса и внутреннего содержимого становится крайне трудно убрать старый объект и поставить на его место новый.
_________________
147 стр. Глава 11. Знакомство с объектно-ориентированным программированием
■ Невозможно использовать повторно.Печи делаются для приготовления разных блюд. Мне, например, не хочется создавать новую печь всякий раз, когда требуется приготовить новое блюдо. Если задача уже решена, неплохо использовать её решение и в других программах.
■■■
В оставшихся главах этой части демонстрируется, каким образом можно решить все эти проблемы при помощи объектно-ориентированного программирования.
_________________
148 стр. Часть 3. Введение в классы
Глава 12. КЛАССЫ В С++...149
ОГЛАВЛЕНИЕ
В этой главе...
►Введение в классы 149
►Формат класса 149
►Обращение к членам класса 150
Очень часто программы имеют дело с совокупностями данных: имя, должность, табельный номер и т.д. Каждая отдельная составляющая не описывает человека, смысл имеет только вся вместе взятая информация. Простая структура, такая как массив, прекрасно подходит для хранения отдельных значений, однако совершенно непригодна для хранения совокупности данных разных типов. Таким образом, массив недостаточен для хранения комплексной информации.
По причинам, которые вскоре станут понятными, я буду называть такие совокупности информации объектами. Микроволновая печь — объект. Вы также объект ( и я тоже, хотя уже и не так уверен в этом ). Ваше имя, должность и номер кредитной карты, содержащиеся в базе данных, тоже являются объектом.
Для хранения разнотипной информации о физическом объекте нужна специальная структура. В нашем простейшем примере эта структура должна содержать поля имени, фамилии и номера кредитной карты.
В С++ структура, которая может объединить несколько разнотипных переменных в одном объекте, называется классом.
Класс, описывающий объект, который содержит имя и номер кредитной карты, может быть создан так:
/* Класс dataset */
class NameDataSet
{
public :
char firstName[ 128 ] ;
char lastName [ 128 ] ;
int creditCard ;
} ;
/* Экземпляр класса dataset */
NameDataSet nds ;
_________________
149 стр. Глава 12. Классы в С++
Объявление класса начинается с ключевого слова class , после которого идёт имя класса и пара фигурных скобок, открывающих и закрывающих тело класса.
После открывающей скобки находится ключевое слово public . ( Не спрашивайте меня сейчас, что оно значит, — я объясню его значение немного позже. В следующих главах поясняются разные ключевые слова, такие как public или private . А до тех пор пока я не сделаю private публичным, значение public останется приватным :-). )

«Можно использовать альтернативное ключевое словоstruct , которое полностью идентичноclass , с предполагаемым использованием объявленийpublic .»
[ Советы ]
После ключевого слова public идёт описание полей класса. Как видно из листинга, класс NameDataSet содержит поля имени, фамилии и номера кредитной карты. Первые два поля являются символьными массивами, а третье имеет тип int ( будем считать, что это и есть номер кредитной карты ).

«Объявление класса содержит поля данных, необходимые для описания единого объекта.»
[ Помни! ]
В последней строке этого фрагмента объявляется переменная nds , которая имеет тип NameDataSet . Таким образом, nds представляет собой запись, описывающую отдельного человека.
Говорят, что nds является экземпляром класса NameDataSet и что мы создали этот экземпляр, реализовав класс NameDataSet . Поля firstName и остальные являются членами, или свойствами класса.
►Обращение к членам класса...150
Читать дальше