Файл first.Cpp содержит программу, 1
Состоящую из одной функции main 2
Единственное действие этой программы - 3
Ввести два числа, вычислить их сумму, 4
Вывести на экран эту сумму и 5
Приветствие "BYE !" 6
7 */
// ============================================= 8
Include <iostream> // 9
Include <conio.h> // 10
Using namespace std; // 11
// 12
Void main (void) // 13
{ // 14
Int nA; // 15
Float fltB; // 16
Cout <<"Input numbers:\t" // 17
Lt;<"\nfirst int\t"; // 18
Cin>>nA; // 19
Cout<<"second float\t"; // 20
Cin>>fltB; // 21
Float fltSumma; // 22
fltSumma = nA + fltB; // 23
cout<<"summa = " << fltSumma; // 24
Cout<<endl<<"\tBYE !"; // ПОКА 25
Getch(); // 26
} // 27
Рассмотрим приведенный текст.
Программа содержит функцию main.
Она состоит:
- из заголовка ( строка 13 );
- тела ( строки 14 – 27 ).
Тело функции состоит из инструкций. Каждая инструкция заканчивается точкой с запятой. Инструкций в теле функции всего 11, из них 3 – это инструкции определения объектов nA ( строка 15), fltB ( строка 16), fltSumma ( строка 22).
Эти инструкции создают объекты, выделяя под них память. Напоминаем, что любой объект, имя которого встречается в программе, должен быть определен и определен всего один раз. Инструкции определения объектов легко распознать, они всегда начинаются с имен типов – здесь имена типов int и float (строки 15, 16, 22). Кроме этого в функции определены константные объекты-строки. Константные объекты-строки - это последовательности символов, взятые в двойные кавычки.
Вот эти пять объектов:
"Input numbers:\t"
"\nfirst int\t"
"second float\t"
"summa = "
"\tBYE !"
Обратите внимание, что почти в каждой из этих строк присутствуют escape-символы (здесь, для того чтобы их разглядеть, они выделены жирным курсивом).
Стандартные потоковые объекты С++ (cin, cout) и потоковые операторы >>, <<.
Кроме объектов na, fltb, fltSummaи константных строк в тексте появились имена cout и cin. Объекты cout и cin – это имена стандартных абстрактных объектов, тип их называется «поток», с их помощью организуется ввод и вывод в С++. Объект cout совместно с оператором >> организует вывод информации из памяти на экран. Объект cinсовместно с оператором <<организует ввод информации с клавиатуры в память.
сoutиcin -это имена объектов, но если мы пытаемся воспользоваться этими объектами, где их определения, где и когда они создаются?
Описание объектов в хэдерных файлах .h. Область видимости имен – оператор using namespace std;
Определение стандартных объектов cout и cin присоединяется в строке 9. В этой строке записана директива #include специальной программы – препроцессора.
Препроцессор (preprocessor)- это программа, выполняющая предварительную обработку входных данных (исходного файла с расширением .срр) для другой программы (компилятора). Препроцессор до начала работы программы-компилятора: · отыскивает и подключает к программе необходимые файлы; · просматривает исходный текст на языке С++ до компилятора и заменяет в нем определенные сочетания символов (макросы) на соответствующие другие; · может изменить условия компиляции. |
Директива препроцессора содержит указания препроцессору о том, какие действия необходимо этой программе выполнить. Директивы препроцессора всегда начинаются с символа #
Директива #include вставляет перед текстом функции mainтекст файла iostream. Обратите внимание, что эта директива не является элементом языка С++, это элемент другого языка, языка программы препроцессор.
Директива, не является инструкцией языка С++, а потому не имеет заканчивающей её точки с запятой.
В тексте файла iostream находятся определения объектов cout и cin, эти определения и присоединяются к тексту программы.
Имя файла iostream записано в треугольных скобках < >,что является указанием системе, где, в каких папках искать файл и соответствующую ему библиотеку. Этот поиск делается автоматически на этапе компоновки.
Объект endlопределен также в файле iostream, он работает так, как и escape-символ ‘\n‘ - переводит курсор при выводе на новую строку экрана.
Обратите внимание на инструкцию using namespace языка С++ в строке 19:
using namespace std;
Эта инструкция определяет область имен, где необходимо искать определения используемых в программе имен объектов. Дело в том, что сейчас существует очень много различных библиотек, в которых могут появиться одинаковые имена. Инструкция using namespace определяет, что поиск нужно осуществлять в области имен стандартной библиотеки std.
Последнее имя, которое используется в этой программе – имя getch. Это имя объекта типа функция. Как система и мы узнаем, что это имя функции, а не какого-то объекта любого другого типа? Этим признаком является то, что сразу после этого имени появляется оператор вызова функции – круглые скобки () (смотрите таблицу сводки операторов С++, приоритет 2). Этот объект, как и любой объект должен быть определен в функции, если им нужно воспользоваться. Описания стандартных функций находятся в .h файлах. Описание этой функции getch находится в файле conio.h , который подключается директивой препроцессора #include в строке 10. А определения этого стандартного объекта-функции (его код) находится в стандартной библиотеке (LIB). Само определение этого объекта- функции будет найдено автоматически в стандартной библиотеке и подключено к нашему коду на этапе компоновки.
Файлы, в которых находятся описания или определения стандартных объектов называются хэдерные файлы (заголовочные файлы), и могут иметь или не иметь расширение .h
В функции main 7 инструкций-выражений.