58 Часть I. Основные характеристики C++

Здесь мы рассмотрим объекты и принципы создания программ, использующих объектно-ориентированные возможности C++. Вы познакомитесь со следующими темами:

• Отличие между процедурным и объектно-ориентированным программированием

• Характеристики объекта и соответствующая терминология

• Применение техники объектно-ориентированного анализа и проектирования к вашим программам

• Оценка других сторон объектно-ориентированной философии, таких как, например, принцип захвата ресурсов при инициализации

Процедурное и объектно-ориентированное программирование

Для преодоления растущей сложности программного обеспечения возникают различные инженерные решения проблем программирования. Программирование компьютеров начиналось исторически с весьма малых масштабов — вследствие аппаратных ограничений. Область задач была связана преимущественно с математикой, где целью среднестатистической программы было выполнить одно задание и сделать это безупречно (просчитать таблицы логарифмов, вычислить траекторию ракеты). По мере увеличения мощности оборудования и снижения его стоимости росли и требования к программному обеспечению. Каждая более сложная задача требовала новых программных средств; это привело к появлению языков программирования высокого уровня, таких как FORTRAN, COBOL, Pascal, С (как противоположность низкоуровневому программированию в машинных кодах или на языке ассемблера). Усложнялись задачи — усложнялось программирование. Вскоре программисты стали ясно понимать, что задачи решаются проще, если разбить их на иой-задачи, которые, в свою очередь, прекрасно реализуются /гсхЗ-программами (подпрограммы, процедуры и функции). Эти подпрограммы стали отличительным признаком процедурного программирования.

Давайте рассмотрим, например, как можно решать задачу пополнения вклада на сберегательном счету в банке дроблением ее на мелкие подзадачи.

Что произойдет, когда вы захотите сделать вклад? Первым делом он должен быть где-то сохранен. Во-вторых, сумма на вашем счету должна быть изменена (в сторону увеличения). Чтобы сделать это, надо найти ваш предыдущий баланс, к которому вы добавляете свой вклад, и получить новую сумму. Если вы нарисуете свою задачу и ее составляющие, то получите что-то похожее на рис. 3.1.