- •6 Глава 1
- •12 Глава 1
- •14 Глава 1
- •16 Глава 1
- •18 Глава 1
- •20 Глава 1
- •22 Глава 1
- •24 Глава 1
- •26 Глава 1
- •31 Глава 1
- •34 Глава 2
- •36 Глава 2
- •Puc. 2.4. Дополнительные опции консольного приложения Win32
- •38 Глава 2
- •40 Глава 2
- •42 Глава 2
- •44 Глава 2
- •48 Глава 2
- •50 Глава 2
- •52 Глава 2
- •54 Глава 2
- •56 Глава 2
- •58 Глава 2
- •60 Глава 2
- •62 Глава 2
- •64 Глава 2
- •66 Глава 2
- •68 Глава 2
- •70 Глава 2
- •74 Глава 2
- •76 Глава 2
- •79 Глава 2
- •82 Глава 2
- •84 Глава 2
- •86 Глава 2
- •88 Глава 2
- •92 Глава 2
- •94 Глава 2
- •96 Глава 2
- •98 Глава 2
- •103 Глава 2
- •105 Глава 2
- •107 Глава 2
- •110 Глава 2
- •115 Глава 3
- •119 Глава 3
- •121 Глава 3
- •123 Глава 3
- •125 Глава 3
- •129 Глава 3
- •131 Глава 3
- •133 Глава 3
- •139 Глава 3
- •141 Глава 3
- •143 Глава 3
- •145 Глава 3
- •148 Глава 3
- •150 Глава 3
- •155 Глава 3
- •165 Глава 4
- •168 Глава 4
- •170 Глава 4
- •173 Глава 4
- •175 Глава 4
- •178 Глава 4
- •184 Глава 4
- •186 Глава 4
- •188 Глава 4
- •190 Глава 4
- •192 Глава 4
- •194 Глава 4
- •198 Глава 4
- •201 Глава 5
- •203 Глава 5
- •205 Глава 5
- •207 Глава 5
- •213 Глава 5
- •217 Глава 5
- •219 Глава 5
- •221 Глава 5
- •223 Глава 5
- •225 Глава 5
- •227 Глава 5
- •232 Глава 5
- •234 Глава 5
- •236 Глава 5
40 Глава 2
Апельсины - не единственные фрукты...
- и всего у нас 11 фруктов.
Press any key to continue . . .
Для продолжения нажмите любую клавишу . . .
Первые две строки выдала программа, а последняя указывает, что вы можете за- вершить выполнение и закрыть окно командной строки.
Комментарии к программе
Первых две строки программы — это комментарии. Комментарии рассматривают- ся как важная часть программы, однако они не являются исполняемым кодом — это просто подсказки для читателей-людей. Все комментарии компилятором игнориру- ются. В любой строке кода два последовательных слеша / /, если они не содержатся внутри текстовой строки (что такое текстовые строки, вы увидите позже), говорят о том, что остальная часть строки справа от них представляет собой комментарий.
Как видите, несколько строк в программе содержат комментарии вместе с опера- торами самой программы. Вы также можете применять альтернативную форму ком- ментариев, ограничивая их комбинациями символов /* и */• Например, первая стро- ка программы могла бы выглядеть следующим образом:
Комментарий, начинающийся с //, включает только часть строки справа от него, в то время как форма /*. . . */ определяет, что все, находящееся между /* и */, явля- ется комментарием, и может распространяться на несколько строк. Например, впол- не можно написать так:
Здесь все четыре строки являются комментариями. Если вы хотите выделить не- которые строки комментариев, то всегда можете украсить их рамкой:
Как правило, всегда нужно стараться снабжать программы исчерпывающими ком- ментариями. Комментарии должны быть достаточными, чтобы другой программист или вы сами через какое-то время, смогли понять назначение конкретной части кода и то, как он работает.
Директива- файлы заголовков
Вслед за начальными комментариями в программе находится директива
Она называется директивой, поскольку указывает компилятору сделать что-то — в данном случае вставить содержимое файла <iostream> в программу перед ее компи- ляцией. Файл <iostream> называется файлом заголовков, потому что обычно он по- является в начале программного файла. В действительности точнее было бы назвать <iostream> заголовком, так как согласно стандарту ANSI С++ заголовок не обязатель- но должен содержаться в файле. Заголовочный файл <iostream> включает определе-
Данные,
переменные
и
вычисления
ния, которые понадобятся вам для того, чтобы можно было использовать операторы ввода и вывода С++. Если вы не включите в программу содержимое <iostream>, то она не скомпилируется, поскольку вы используете в ней операторы, зависящие от не- которых определений, находящихся в этом файле. Существует множество заголовоч- ных файлов, поставляемых с Visual С++, которые охватывают широкий круг возмож- ностей. Вы познакомитесь со многими из них в процессе изучения средств языка.
Оператор— это одна из директив препроцессора. Редактор Visual С++
распознает их и окрашивает в голубой цвет в окне редактирования. Директивы пре- процессора — это команды, выполняемые на фазе предварительной обработки компи- лятора, которая выполняется перед тем, как ваш исходный код будет скомпилирован в объектный код, и директивы препроцессора обычно некоторым образом воздей- ствуют на ваш исходный код перед тем, как он будет скомпилирован. По мере необхо- димости я представлю вам и другие директивы препроцессора.
Пространства имен и объявление using
Как было показано в главе 1, стандартная библиотека — это широкий набор проце- дур, предназначенных для решения многих часто встречающихся задач: например, об- работка ввода-вывода и выполнение базовых математических вычислений. Поскольку существует огромное количество таких процедур, а наряду с ними — и других име- нованных сущностей, есть вероятность, что вы можете нечаянно использовать для собственных целей имя, совпадающее с одним из имен, определенных в стандартной библиотеке. Пространство имен (namespace) — это механизм С++, предназначенный для предотвращения проблем, связанных с дублированием имен, применяемых в про- грамме для разных целей. Это делается за счет того, что определенное множество имен вроде имен стандартной библиотеки ассоциируется с общим именем семейства, которое и представляет собой пространство имен.
Каждое имя, определенное в коде, появляющемся внутри пространства имен, включает в себя имя этого пространства имен. Все средства стандартной библиотеки ISO/ANSI С++ определены внутри пространства имен по имени std, поэтому каждый элемент стандартной библиотеки, к которому вы можете обратиться в своей програм- ме, имеет свое собственное имя плюс наименование пространства имен — std — в ка- честве квалификатора. Имена cout и endl определены в стандартной библиотеке, поэтому их полные имена выглядят как, и вы видели это в
действии в главе 1. Два двоеточия, отделяющие имя пространства имен от имени эле- мента, образуют операцию, называемую операцией разрешения контекста. Позднее в этой книге я расскажу о других случаях ее использования. Применение полных имен в программе делает код несколько громоздким, поэтому было бы неплохо ис- пользовать их простые имена без квалификатора — имени пространства имен std. Две строки программы, которые следуют за директивой, обе-
спечивают упомянутую возможность:
Это — объявления using, сообщающие компилятору о вашем намерении ис- пользовать имена cout и endl из пространства имен std без указания квалификато- ра — наименования пространства имен. После этого компилятор, встречая в тексте программы имя cout, в соответствии с первым объявлением будет предполагать, что вы имеете в виду cout, определенный в стандартной библиотеке. Имя cout представ- ляет стандартный выходной поток, который по умолчанию соответствует командной строке, а имя endl — символ новой строки.