Первое приложение на C++ — это небольшая программа, которую вы набираете в текстовом файле, компилируете в исполняемый файл и запускаете. Классический первый пример выводит в консоль строку Hello, world!: на нем удобно проверить, что компилятор установлен и что весь путь от исходника до запуска работает.
Содержание
Ниже — полный код первой программы, который можно скопировать и запустить, разбор каждой строки, команды для сборки в Windows, Linux и macOS, а также типичная ошибка новичка и что делать, если программа не собирается. Инструменты проверены на 16.09.2026.
Что понадобится
Для первой программы на C++ нужны две вещи: компилятор (он превращает текст программы в исполняемый файл) и место, где набирать код. Компилятор зависит от операционной системы.
| ОС | Компилятор | Как поставить |
|---|---|---|
| Windows | MSVC или MinGW-w64 (g++) |
Visual Studio Installer, компонент «Разработка на C++» |
| Linux | g++ или clang++ |
sudo apt install build-essential (Debian/Ubuntu) |
| macOS | clang++ |
xcode-select --install (Command Line Tools) |
Набирать код можно в любом редакторе: Visual Studio, VS Code, CLion или даже в простом текстовом редакторе. Главное — сохранить файл с расширением .cpp, например hello.cpp. Специальная среда разработки не обязательна, но подсветка синтаксиса и автодополнение ускоряют работу.
На Windows проще всего поставить Visual Studio (версии 2022 или 2026) с компонентом для C++ — он ставит компилятор и редактор сразу. Более легкий вариант без большой среды — компилятор MinGW-w64, который дает команду g++, как в Linux и macOS.
Первая программа целиком
Вот минимальная рабочая программа. Скопируйте ее в файл hello.cpp — дальше разберем каждую строку.
#include <iostream>
int main() {
std::cout << "Hello, world!" << std::endl;
return 0;
}
После сборки и запуска в консоли появится ровно одна строка:
Hello, world!
Если вы это увидели — компилятор работает, и первое приложение готово. Дальше остается понять, что делает каждая строка.
Разбор по строкам
#include <iostream>— подключает стандартную библиотеку ввода-вывода. Из нее беретсяstd::cout— поток вывода в консоль. Без этой строки компилятор не будет знать, что такоеcout.int main()— главная функция, точка входа. Выполнение программы начинается отсюда. Типintозначает, что функция возвращает целое число — код завершения.std::cout << "Hello, world!"— отправляет текст в стандартный вывод. Оператор<<«вливает» данные в поток; строку для вывода пишут в двойных кавычках.std::endl— переводит строку (и сбрасывает буфер вывода). Часто вместо него пишут"\n"— это тоже перевод строки, но без принудительного сброса буфера.return 0— сообщает системе, что программа завершилась без ошибок. Ненулевое значение обычно означает, что что-то пошло не так.
Префикс std:: указывает, что cout и endl берутся из стандартного пространства имен std. Во многих учебниках в начало добавляют строку using namespace std; и пишут просто cout — это допустимо для маленьких программ, но в крупных проектах явный префикс std:: считается более безопасным, потому что не смешивает имена из разных библиотек.
Как собрать и запустить
Сборка — это вызов компилятора, который из hello.cpp делает исполняемый файл. В Linux и macOS откройте терминал в папке с файлом и выполните две команды:
g++ hello.cpp -o hello
./hello
Первая команда компилирует исходник в файл hello, вторая — запускает его. На macOS команда g++ обычно является псевдонимом для clang++, поэтому подойдет и clang++ hello.cpp -o hello.
В Windows с компилятором MinGW-w64 команды почти те же, меняется только имя результата:
g++ hello.cpp -o hello.exe
hello.exe
Если вы работаете в Visual Studio, отдельные команды не нужны: откройте файл в проекте и нажмите Ctrl+F5 (запуск без отладки) — среда сама скомпилирует и запустит программу, оставив окно консоли открытым.
При желании можно указать версию стандарта, например g++ -std=c++23 hello.cpp -o hello. Для Hello, world! это не обязательно: пример собирается на любом современном компиляторе и без явного флага.
Программа, которая делает чуть больше
Вывод одной строки — это только проверка. Чтобы программа стала похожа на приложение, добавим переменные и несколько строк вывода. Данные здесь заданы прямо в коде, поэтому результат предсказуем и его можно сверить.
#include <iostream>
#include <string>
int main() {
std::string name = "Мария";
int year = 2026;
std::cout << "Привет, " << name << "!" << std::endl;
std::cout << "Первая программа на C++ собрана в " << year << " году." << std::endl;
return 0;
}
Результат:
Привет, Мария!
Первая программа на C++ собрана в 2026 году.
Заголовок <string> подключен ради типа std::string — строки переменной длины. В один поток std::cout можно подряд «вливать» и текст в кавычках, и значения переменных — оператор << соединяет их слева направо.
Чтобы программа спрашивала данные у пользователя, а не хранила их в коде, значение читают из потока ввода std::cin. Целую строку с пробелами удобно читать функцией std::getline:
std::string name;
std::cout << "Как вас зовут? ";
std::getline(std::cin, name); // читаем строку целиком, включая пробелы
После этого в name окажется то, что ввел пользователь, и его можно вывести так же, как переменную в примере выше.
Типичная ошибка новичка: целочисленное деление
Одна из первых неожиданностей в C++ — деление двух целых чисел. Результат тоже получается целым, дробная часть отбрасывается, хотя код выглядит правильным и компилируется без ошибок.
Неверный расчет:
#include <iostream>
int main() {
int a = 5, b = 2;
std::cout << "5 / 2 = " << a / b << std::endl;
return 0;
}
Фактический вывод:
5 / 2 = 2
Разбор: a и b объявлены как int, поэтому a / b — целочисленное деление, и 5 / 2 дает 2, а не 2.5. Ошибки компиляции нет, программа просто считает не то, что ожидалось.
Исправление — использовать дробный тип double хотя бы для одного из операндов:
#include <iostream>
int main() {
double a = 5, b = 2;
std::cout << "5 / 2 = " << a / b << std::endl;
return 0;
}
Теперь деление дробное:
5 / 2 = 2.5
Правило простое: если нужен дробный результат, хотя бы одно из чисел в делении должно быть дробным (double или float). Иначе C++ делит нацело.
Если не получилось
Первая сборка часто спотыкается на мелочах. Ниже — типовые симптомы и что делать.
'cout' was not declaredили'cout' is not a member of 'std'— забыт#include <iostream>или пропущен префиксstd::. Проверьте первую строку и обращения кcout.g++: command not found(Linux/macOS) или'g++' не является внутренней командой(Windows) — компилятор не установлен или не добавлен в PATH. Вернитесь к разделу «Что понадобится» и поставьте компилятор для своей ОС.- Окно консоли мелькает и сразу закрывается — вы запустили программу двойным кликом. Запускайте из терминала (
./hello) или в Visual Studio через Ctrl+F5 — тогда окно останется открытым. - Вместо русских букв в консоли Windows кракозябры — это вопрос кодировки консоли, а не ошибки в коде. Поведение зависит от версии Windows и настроек терминала; часто помогает переключение кодовой страницы командой
chcp 65001перед запуском. Для первой программы проще выводить текст латиницей.
Выводы
- Первое приложение на C++ — это цикл «написать
.cpp— скомпилировать — запустить»; на примереHello, world!удобно проверить, что весь этот путь работает. - Минимальная программа состоит из
#include <iostream>, функцииmainи вывода черезstd::cout;return 0сообщает об успешном завершении. - Собирают программу командой
g++ hello.cpp -o hello(илиclang++), в Visual Studio — через Ctrl+F5. - Целочисленное деление отбрасывает дробную часть без ошибки компиляции — для дробного результата берут тип
double. - Для интерактивной программы данные читают из
std::cin(std::getlineдля строки целиком), а не хранят в коде.
Где применять на практике
Навык собрать и запустить программу на C++ — основа для системного и прикладного программирования: игр, высоконагруженных сервисов, встраиваемых систем и десктопных приложений, где важны скорость и контроль над памятью. От первого Hello, world! до таких проектов путь строится через классы, работу с памятью и стандартную библиотеку.
Освойте тему на практике
Пройти этот путь системно, с проверкой кода практикующими разработчиками, помогает курс Программирование на C++ с нуля: он ведет от базового синтаксиса к самостоятельным проектам.
Освойте тему на практике
Посмотреть, как разбирают такие темы вживую, и задать вопросы преподавателям можно на открытых вебинарах Otus — они бесплатные и проходят регулярно.
Смежные темы: Где писать программный код: список приложений, Компиляторы: назначение и виды, Класс: что это и как использовать.
FAQ
Обязательно ли платить за среду разработки? Нет. Visual Studio Community, VS Code, компиляторы g++ и clang++ бесплатны. Для первой программы достаточно бесплатного компилятора и любого текстового редактора.
Можно ли писать на C++ онлайн, без установки? Да, для первых проб подойдут онлайн-компиляторы прямо в браузере — код запускается на их сервере. Но для реальных проектов и отладки инструменты все же ставят локально.
Чем первая программа на C++ отличается от программы на C? В C вывод делают функцией printf из <stdio.h>, а в C++ — через поток std::cout из <iostream>. Функция main и общая схема «скомпилировать и запустить» в обоих языках совпадают.



