Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на C / C++ / Нейбауэр А. Моя первая программа на С.doc
Скачиваний:
182
Добавлен:
02.05.2014
Размер:
3.75 Mб
Скачать

Необходимые пояснения

Язык Си был разработан Деннисом М. Ритчи в 1972 году и подробно описан в книге Ритчи и Брайана В. Кернигана «Язык программирования Си». Реализация Си в соответствии с правилами, изложенными в книге, рассматривается как K&R стандарт Си (по именам Кернигана и Ритчи). K&R-Си является, по-видимому, минимальной стандартной реализацией, так что любая программа, написанная с использованием правил K&R-Си, будет успешно транслироваться любым компилятором Си.

Во многих отношениях, однако, стандарт не был исчерпывающе определен, так что разработчики компиляторов стали усовершенствовать и развивать язык, каждый по-своему. Чтобы избежать путаницы, Американский Институт Национальных Стандартов* в 1983 году разработал новый стандарт, названный

стандартом ANSI языка Си. ANSI-Си устанавливает правила развития и вводит стандарты для большинства средств языка Си.

Язык программирования, известный как Си++ — это надмножество языка Си. Реально он не является новым языком, так как включает все операторы и средства языка Си, добавив только некоторые новые. Изучая Си, вы по большей части одновременно изучаете и язык Си++. Преимущество Си++ в том, что он позволяет с большей легкостью разрабатывать большие сложные программы за счет более модульного подхода и некоторых других усовершенствований. Кроме того, Си++ является языком объектно-ориентированного программирования.

Что такое объектно-ориентированное программирование

По правде говоря, почти невозможно быстро и доходчиво описать, что такое объектно-ориентированное программирование, если не имеешь дело с опытным программистом. Однако попытаемся.

Предположим, у нас есть картотека, содержащая информацию о членах некоего клуба: имя, адрес и номер телефона, статус в клубе.

___________________________

* American National Standards Institute. (Прим.перев.)

Карточка члена клуба

Имя

Адрес

Телефон

Статус

Если у кого-то изменяется адрес, то мы должны просмотреть картотеку в поисках карточки с его именем, чтобы занести туда новую информацию. То же самое происходит и в случае изменения номера телефона или статуса члена клуба. Если бы мы написали инструкции для выполнения этих трех отдельных действий, они могли бы выглядеть примерно так:

Взять карточки

Найти карточку Смита

Изменить адрес на Западная Авеню, 12

Взять карточки

Найти карточку Доу

Изменить телефон на 555-1234

Взять карточки

Найти карточку Джонса

Изменить статус на «выбыл»

Обратите внимание, все эти три действия относятся к карточкам, карточки же, сами по себе, не имеют отношения к действиям, которые над ними производят. Следовательно, мы имеем дело с четырьмя объектами: карточками и функциями изменения адреса, номера телефона и статуса.

В объектно-ориентированном программировании мы используем наборы данных (карточки), которые комбинируем с производимыми над ними действиями. Отныне мы будем иметь дело с этой комбинацией как с единым объектом. Если изобразить этот объект (назовем его клубная карточка), он будет выглядеть так:

Клубная Карточка

Имя

Адрес

Телефон

Статус

Изменить адрес

Изменить телефон

Изменить статус

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

Клубная карточка: Изменить адрес (Смит, Западная Авеню, 12)

Клубная карточка: Изменить телефон (Доу, 555-1234)

Клубная карточка: Изменить статус (Джонс, выбыл)*

Не беспокойтесь, если такое объяснение показалось вам немного абстрактным. Вам не обязательно изучать объектно-ориентированное программирование, чтобы программировать на Си. Однако, изучив Си, вы будете способны с большей легкостью разобраться и в объектно-ориентированном программировании.