· Программа представляет собой файл, содержащий последовательность операторов языка (инструкций, которые компьютер будет выполнять).
· Создается программа на C++ с помощью текстового редактора и сохраняется в исходных файлах, для которых используется расширение СРР.
· При компиляции программы ее операторы преобразуются в машинный код, который понимает компьютер. При нарушении в программе правил синтаксиса, компилятор выводит сообщение, описывающее ошибку.
· После исправления синтаксических ошибок и внесения изменений в исходный файл, следует заново откомпилировать программу, чтобы изменения вступили в силу. В этом случае компилятор создаст выполняемую программу.
Обычно программа на С++состоит из большого числа небольших функций. Функция — это поименованная часть программы, которая может вызываться из других частей программы нужное количество раз.
Логически программа на С++ представляет собой набор функций, одна из которых, главная, имеет имя main() (в простейшем случае функция main() является единственной). Программа начинает работу с функции main (), являющейся точкой входа в программу и получающей управление первой после запуска программы на выполнение.
Рассмотрим примеры простейших программ, состоящих только из одной главной функции main() и демонстрирующих вывод в стиле С и в стиле С++.
В программировании заголовочный (подключаемый) файл (англ. header file) – это файл, содержимое которого автоматически добавляется препроцессором в исходный текст программы в том месте, где располагается некоторая директива (в С и С++ это директива # include). В С и C++ заголовочные файлы – основной способ подключить к программе прототипы функций, константы, классы и пр., (стандартные или из другого модуля).
# include <стандартный файл> //подключение стандартных заголовочных файлов
# include ”файл пользователя” //подключение заголовочных файлов пользователя
Заголовочный файл в общем случае может содержать любые конструкции языка программирования, но на практике исполняемый код (за исключением inline -функций в C++, которые мы будем изучать позже) в заголовочные файлы не помещают. Например, идентификаторы, которые должны быть объявлены более чем в одном файле, удобно описать в заголовочном файле, а затем его подключать по мере надобности. По сложившейся традиции, в заголовочных файлах объявляют функции стандартной библиотеки Си и Си++, т.е. записывают их прототипы (заголовок функции, завершающийся символом ‘;’).
Примеры прототипов функций:
void f1(); // прототип функции f1
int f2 (int, char); //прототип функции f2
double sin (double); //прототип стандартной математической функции вычисления синуса
Для подключения заголовочного файла с прототипами функций ввода/вывода в стиле С используется директива # include < stdio. h > [1].
Простейшая программа «Hello, world!» может быть записана так:
· с использованием библиотеки С < stdio. h >
/*proba_1_1.cpp*/
# include <stdio.h>
#include <conio.h> // для прототипа _getch()
Int main()
{
printf("Hello, World! \n " [2]);
_ getch () [3];
return 0 [4];
}
В строке, содержащей заголовок функции main(),служебное слово int указывает, что функция возвращает целое значение. Круглые скобки после main()соответствуют синтаксису заголовка любой функции. В них помещается, при необходимости, список параметров.
В фигурных скобках представлено тело функции (последовательность описаний, определений и операторов, каждое из которых заканчивается символом «точка с запятой»). В нашем примере тело функции содержит операторы вызова функции printf () для вывода текста на экран, вызова функции _ getch () дляприостановки выполнения программы и оператор завершения return..
Оператор возврата return выражение; завершает выполнение программы (функции) и передает значение выражения в точку вызова программы (функции). Для функции main()значение выражения должно быть равно нулю (return0;), если выполнение программы прошло успешно. Так как программа «запускается» на выполнение по команде операционной системы, то и возврат будет выполнен к операционной системе (точнее, в стандартный модуль, который автоматически «прикомпоновывается» к программе и из которого осуществляется ее вызов).Оператор return явно может и не использоваться (стандарт С++ предусматривает, что функция main() по умолчанию возвращает 0).
Программа «Hello, world!» может быть записана с использованием библиотеки С++ iostream так:
/*proba_2_1.cpp*/
# include <iostream> [5]
# include <cstdlib> // для работы с функцией system()
Int main()
{
std:: cout << "Hello, world!" << std:: endl [6];
system ("pause"); //приостановка выполнения программы до нажатия клавиши
return 0;
}
Для обеспечения ввода/вывода в С++ используется директива # include < iostream >. С++ обеспечивает выполнение вывода в стандартный поток std::cout с использованием оператора <<, а ввода из стандартного потока std::cin – с использованием оператора >>. В то же время, доступны, как и в С, функции вывода printf() и ввода scanf().
Имена, используемые в стандартной библиотеке С++ (например, cout и endl), объявлены в пространстве имен std. Они невидимы в программе, пока мы явно не сделаем их видимыми. Обозначения заголовочных файлов программ до введения стандарта языка имели расширение “.h”, а имена объектов библиотек и программы помещались в единственное глобальное пространство имен и никакого префикса при обращении к ним не требовалось. Стандарт языка С++ поместил имена из стандартной библиотеки классов и функций в пространство имен std, отделив их тем самым от глобального пространства имен. Префикс std:: – это указание на обращение к имени из стандартного пространства имен std.
Одна из принципиальных особенностей С++ – расширение действия стандартных операций, или перегрузка. Конструкция (лексема) <<,при условии, что слева от нее находится имя объекта std::cout (std::cout <<) означает операцию « поместить в поток », в противном случае,означает, как и в С, операцию сдвига влево двоичного представления значения левого операнда (например, запись x << 2 означает сдвиг значения переменной x на 2 разряда влево, т.е. умножение на 4). Об этом подробнее мы будем говорить позже.
Для упрощения обращения к библиотечным именам без префикса std:: в современных компиляторах используется директива using namespace std;. Разработчики современных компиляторов встраивают в них возможность применения в программах старых заголовков (с расширением.h).
/*proba_2_2.cpp*/
# include <iostream>// С ++
# include < cstdlib > // для работы с функцией system()
Using namespace std;
Int main()
{
cout << "Hello, world!" << endl;
system ("pause");
return 0;
}






