Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
A.doc
Скачиваний:
36
Добавлен:
09.04.2015
Размер:
5.6 Mб
Скачать

40 Глава 2

Апельсины - не единственные фрукты...

- и всего у нас 11 фруктов.

Press any key to continue . . .

Для продолжения нажмите любую клавишу . . .

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

Комментарии к программе

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

Как видите, несколько строк в программе содержат комментарии вместе с опера- торами самой программы. Вы также можете применять альтернативную форму ком- ментариев, ограничивая их комбинациями символов /* и */• Например, первая стро- ка программы могла бы выглядеть следующим образом:

Комментарий, начинающийся с //, включает только часть строки справа от него, в то время как форма /*. . . */ определяет, что все, находящееся между /* и */, явля- ется комментарием, и может распространяться на несколько строк. Например, впол- не можно написать так:

Здесь все четыре строки являются комментариями. Если вы хотите выделить не- которые строки комментариев, то всегда можете украсить их рамкой:

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

Директива- файлы заголовков

Вслед за начальными комментариями в программе находится директива

Она называется директивой, поскольку указывает компилятору сделать что-то — в данном случае вставить содержимое файла <iostream> в программу перед ее компи- ляцией. Файл <iostream> называется файлом заголовков, потому что обычно он по- является в начале программного файла. В действительности точнее было бы назвать <iostream> заголовком, так как согласно стандарту ANSI С++ заголовок не обязатель- но должен содержаться в файле. Заголовочный файл <iostream> включает определе-

Данные, переменные и вычисления 41

ния, которые понадобятся вам для того, чтобы можно было использовать операторы ввода и вывода С++. Если вы не включите в программу содержимое <iostream>, то она не скомпилируется, поскольку вы используете в ней операторы, зависящие от не- которых определений, находящихся в этом файле. Существует множество заголовоч- ных файлов, поставляемых с Visual С++, которые охватывают широкий круг возмож- ностей. Вы познакомитесь со многими из них в процессе изучения средств языка.

Оператор— это одна из директив препроцессора. Редактор Visual С++

распознает их и окрашивает в голубой цвет в окне редактирования. Директивы пре- процессора — это команды, выполняемые на фазе предварительной обработки компи- лятора, которая выполняется перед тем, как ваш исходный код будет скомпилирован в объектный код, и директивы препроцессора обычно некоторым образом воздей- ствуют на ваш исходный код перед тем, как он будет скомпилирован. По мере необхо- димости я представлю вам и другие директивы препроцессора.

Пространства имен и объявление using

Как было показано в главе 1, стандартная библиотека — это широкий набор проце- дур, предназначенных для решения многих часто встречающихся задач: например, об- работка ввода-вывода и выполнение базовых математических вычислений. Поскольку существует огромное количество таких процедур, а наряду с ними — и других име- нованных сущностей, есть вероятность, что вы можете нечаянно использовать для собственных целей имя, совпадающее с одним из имен, определенных в стандартной библиотеке. Пространство имен (namespace) — это механизм С++, предназначенный для предотвращения проблем, связанных с дублированием имен, применяемых в про- грамме для разных целей. Это делается за счет того, что определенное множество имен вроде имен стандартной библиотеки ассоциируется с общим именем семейства, которое и представляет собой пространство имен.

Каждое имя, определенное в коде, появляющемся внутри пространства имен, включает в себя имя этого пространства имен. Все средства стандартной библиотеки ISO/ANSI С++ определены внутри пространства имен по имени std, поэтому каждый элемент стандартной библиотеки, к которому вы можете обратиться в своей програм- ме, имеет свое собственное имя плюс наименование пространства имен — std — в ка- честве квалификатора. Имена cout и endl определены в стандартной библиотеке, поэтому их полные имена выглядят как, и вы видели это в

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

спечивают упомянутую возможность:

Это — объявления using, сообщающие компилятору о вашем намерении ис- пользовать имена cout и endl из пространства имен std без указания квалификато- ра — наименования пространства имен. После этого компилятор, встречая в тексте программы имя cout, в соответствии с первым объявлением будет предполагать, что вы имеете в виду cout, определенный в стандартной библиотеке. Имя cout представ- ляет стандартный выходной поток, который по умолчанию соответствует командной строке, а имя endl — символ новой строки.