1. Простейшая программа на C++
int main() // Простейшая программа на C++
{
} Code language: JavaScript (javascript)
- Данный код определяет функцию только с именем
main, без входных параметров и без каких-либо действий внутри. - Открывающая фигурная скобка { обозначает начало тела функции main, закрывающая } — конец тела функции. Все исполняемые строки кода помещаются между скобками {}.
- Двойная косая черта
//обозначает однострочный комментарий. Все содержимое от//до конца строки предназначено только для чтения человеком, компилятор полностью игнорирует комментарии; - Каждая полноценная программа на C++ обязательно содержит ровно одну глобальную функцию
main(), выполнение программы начинается сmain intозначает, что функция возвращает целое число. Внутри тела возврат 0 говорит о нормальном завершении программы, возврат ненулевого значения сигнализирует об ошибке.- Возвращаемое значение из пункта 5 считывается системами Unix/Linux, большинство программ под Windows его не используют.
2. Полный пример стандартного вывода Hello World
#include <iostream>
int main()
{
std::cout << "Hello, World!\n";
}
#include <iostream>: Указывает компилятору подключить объявления стандартной библиотеки потоков ввода-вывода. Без этой строки оператор выводаstd::coutне будет распознан;
iostream— одна из упомянутых ранее стандартных библиотек, готовый код на C++, встроенный в компилятор. С его помощью выполняются операции ввода и вывода, например вывод текстовой строки в консоль.
- Оператор вывода
<<: записывает содержимое справа в объект вывода std::cout. В данном примере строковый литерал"Hello, World!\n"выводится (не на физический принтер, а на экран) в стандартную консоль (терминал CMD) черезstd::cout - «Hello, World!\n» — строковый литерал: текст в двойных кавычках; управляющий символ
\n— перевод строки, после вывода курсор автоматически переходит на следующую строку std::: квалификатор пространства имен, указывает, чтоcoutявляется компонентом стандартного пространства именstd. Позже мы разберем конструкциюusing namespace std;, которая позволяет убрать префиксstd::и использовать простоcout.
Квалификатор пространства имен нужен для избавления от конфликтов одинаковых имен, поэтому к библиотечным компонентам добавляют префикс. Аналогия: если в классе два ученика с одинаковым именем, учитель дает им разметку вроде Джейсон Первый, Джейсон Второй; префикс std выполняет ту же задачу.
Полный пример
В следующем примере определены две дополнительные функции: одна вызывается из main, и она в свою очередь вызывает вторую. Программа вычисляет площадь круга: достаточно задать радиус, чтобы вывести полученное значение площади.
#include <iostream>
using namespace std; // После подключения пространства имен std префикс std:: можно не писать далее
// Вычислить площадь круга
double circle_area(double x)
{
return 3.14 * x * x;
}
// Вывести площадь круга
void print_circle_area(double r)
{
cout << "The area of circle with radius " << r << " is " << circle_area(r) << "\n";
}
int main()
{
print_circle_area(2.0); // Радиус равен 2, вывод площади круга
return 0;
}
Результат выполнения
The area of circle with radius 2 is 12.56
С помощью cout можно последовательно использовать несколько операторов << для вывода множества фрагментов текста. Если символ \n не указан, весь вывод будет на одной строке. Помимо строковых литералов можно выводить и переменные, например переменную r типа double из примера.
В записи void print_circle_area(double r) скобки (double r) содержат входной параметр. Входной параметр означает, что значение переменной r передается в функцию при вызове извне. При вызове print_circle_area(2.0); в main передается число 2.0, поэтому внутри функции r равно 2.0. Далее cout выводит текст, переменную r, затем вызывает функцию circle_area(r). При этом значение 2.0 из r передается параметру x функции double circle_area(double x), поэтому x тоже равен 2.0 внутри нее. Производится вычисление 3.14 * 2 * 2 = 12.56, результат возвращается через return обратно в точку вызова, логика эквивалентна коду ниже:
cout << "The area of circle with radius " << r << " is " << 12.56 << "\n";
После завершения вывода закрывающая скобка завершает работу функции print_circle_area, управление возвращается в функцию main.
