Содержание
Введение в C++
C++ используется для создания операционных систем, компьютерных игр, браузеров, серверных приложений, графических редакторов и программ для встраиваемых устройств. Этот язык позволяет писать быстрые программы и при необходимости управлять ресурсами компьютера на низком уровне.
При этом начинать знакомство с C++ мы будем с совсем небольшой программы. Она выведет на экран два знакомых слова:
Hello, world!
Но прежде чем писать код, давайте узнаем, как появился C++ и чем он отличается от других языков программирования.
После этой статьи Вы сможете:
- кратко рассказать, как появился C++;
- объяснить, что такое компиляция;
- назвать несколько особенностей языка;
- прочитать простую программу на C++;
- самостоятельно вывести сообщение в терминал.
Что такое C++
C++ — это компилируемый, статически типизированный язык программирования общего назначения. Такое определение может показаться сложным, но в течение урока мы разберём каждую его часть.
Язык называют языком общего назначения, потому что он не предназначен только для одной узкой задачи. На C++ можно создавать самые разные программы: от небольшой консольной утилиты до игрового движка или компонента операционной системы.
C++ особенно полезен там, где важны скорость, предсказуемое использование памяти и доступ к возможностям компьютера. Однако высокая степень контроля означает и большую ответственность: программисту необходимо внимательно следить за типами данных, памятью и временем жизни объектов. Со всем этим мы будем знакомиться постепенно.
Краткая история C++
История C++ не началась в один момент. На язык повлияли идеи нескольких более ранних языков программирования.
Это полезная схема, но воспринимать её буквально не следует. Каждый новый язык не был простым переименованием предыдущего. Авторы отбирали удачные идеи, отказывались от неудобных решений и добавляли новые возможности.
| Период | Язык | Что важно знать |
|---|---|---|
| 1958-1960 | ALGOL 58 и ALGOL 60 | Популяризировали структурную запись алгоритмов, блоки кода и многие понятия, привычные современным программистам. |
| Начало 1960x | CPL | Крупный проект языка, развивавшийся в Кембридже и Лондоне под влиянием ALGOL 60 и других языков. |
| 1966–1967 | BCPL | Мартин Ричардс упростил идеи CPL и создал язык, удобный для написания системных программ и компиляторов. |
| 1969–1970 | B | Кен Томпсон разработал в Bell Labs компактный язык на основе BCPL. |
| 1971–1973 | C | Деннис Ритчи развил B, добавил систему типов и использовал C при разработке Unix. |
| 1979 | C with Classes (Си с классами) | Бьёрн Страуструп начал дополнять C классами и другими средствами для создания крупных программ. |
| 1983 | C++ | Язык получил название C++. |
| 1985 | Первая коммерческая версия C++ | Вышла первая коммерческая реализация C++ и первое издание книги The C++ Programming Language. |
В 1979 году Бьёрн Страуструп начал работу над языком, который сначала назывался C with Classes, то есть «C с классами». Страуструп хотел сохранить эффективность и системные возможности C, но добавить средства для удобной организации больших программ.
На объектно-ориентированную часть будущего C++ заметно повлиял язык Simula 67. Поэтому реальная история C++ шире одной последовательности: основу синтаксиса и системные возможности язык получил от C, а многие идеи классов — от Simula.
Название C++ начали использовать в 1983 году. Символы ++ в C и C++ обозначают увеличение значения переменной на единицу (инкремент). Поэтому название можно понимать как «улучшенный» или «следующий» C. Сам Страуструп приводит основные даты создания языка в своём FAQ об истории C++.
Сегодня C++ является самостоятельным языком, а не просто дополнением к C. Он продолжает развиваться: новые версии стандарта уточняют правила языка и добавляют возможности в стандартную библиотеку. В этом учебнике мы будем ориентироваться на современный C++26, но начнём с фундаментальных конструкций, без которых невозможно уверенно двигаться дальше.
Основные особенности C++
На первом уроке нам достаточно познакомиться с тремя особенностями языка. Подробно мы разберём их в следующих статьях.
C++ — компилируемый язык
Процессор компьютера не умеет напрямую выполнять текст программы на C++. Ему нужны машинные инструкции — команды, представленные в понятной ему форме.
Перевод исходного кода программы в исполняемый файл называется компиляцией. Этим занимается специальная программа — компилятор.
Упрощённо процесс выглядит так:
- Вы пишете исходный код и сохраняете его, например, в файле main.cpp.
- Компилятор проверяет синтаксис и переводит программу в машинные инструкции.
- В результате появляется исполняемый файл, который можно запустить.
На самом деле внутри этого процесса есть дополнительные этапы: препроцессирование, компиляция отдельных файлов, ассемблирование и компоновка. Сейчас запоминать их не нужно. Пока достаточно понимать главную идею:
Если в исходном коде есть ошибка, компилятор обычно остановится и сообщит, в каком месте обнаружена проблема. Сообщения компилятора могут сначала выглядеть непривычно, но со временем Вы научитесь находить в них полезную информацию.
C++ — статически типизированный язык
Каждое значение в C++ имеет определённый тип. Например, целое число можно сохранить в переменной типа int:
int age = 23;
Компилятор знает тип переменной age ещё до запуска программы. Если попытаться выполнить недопустимую для этого типа операцию, компилятор сможет обнаружить проблему заранее.
Такой подход называется статической типизацией. Типы помогают компьютеру правильно работать с данными, а программисту — раньше замечать некоторые ошибки. В следующей статье мы подробно познакомимся с основными типами данных C++.
C++ поддерживает объектно-ориентированное программирование
Объектно-ориентированное программирование, или ООП, позволяет описывать программу с помощью объектов, которые объединяют данные и действия над ними.
Например, в программе можно описать объект Student. У него могут быть данные — имя и возраст — и действия, например прохождение теста или получение оценки.
В C++ для создания собственных типов объектов используются классы и структуры. Пока нам достаточно знать, что такая возможность существует. К объектно-ориентированному программированию мы перейдём после изучения основных конструкций языка.
Первая программа на C++
Пришло время написать первую программу:
#include <iostream>
int main() {
std::cout << "Hello, world!";
return 0;
}
После запуска она выведет:
Hello, world!
Разберём программу по строкам.
Подключение заголовка <iostream>
#include <iostream>
Строки, начинающиеся с символа #, обрабатываются перед основной компиляцией программы. Они называются директивами препроцессора. Но пока об этих умных словах можно не думать.
Директива #include подключает содержимое указанного заголовочного файла. Заголовок <iostream> относится к стандартной библиотеке C++ и содержит объявления инструментов для потокового ввода и вывода. iostream - input output stream (от англ. потоки ввода и вывода).
Часто эту строку упрощённо называют «подключением библиотеки».
В нашем случае <iostream> нужен для использования std::cout.
Главная функция main
int main() {
Функция main — точка входа в программу на C++. Когда Вы запускаете программу, выполнение её кода начинается с функции main.
Слово int перед именем функции означает, что после завершения она возвращает целое число. Это число сообщает операционной системе, успешно ли завершилась программа.
Круглые скобки () показывают, что перед нами функция. В этой версии программы она не принимает аргументов.
Открывающая фигурная скобка { начинает тело функции — блок команд, которые будут выполняться. Закрывающая скобка } в конце программы завершает этот блок.
Вывод текста с помощью std::cout
std::cout << "Hello, world!";
Эта команда выводит текст в стандартный поток вывода. Обычно он отображается в терминале или консоли.
Разберём выражение по частям:
std— пространство имён стандартной библиотеки C++;::— оператор разрешения области видимости, с помощью которого мы обращаемся к имени внутриstd;cout— стандартный поток вывода;<<— оператор, направляющий значение в поток вывода;"Hello, world!"— строковый литерал, то есть текст, записанный прямо в программе;;— символ завершения инструкции.
Название cout иногда запоминают как console output. Это удобная ассоциация для начала обучения. Однако технически std::cout связан со стандартным потоком вывода, который можно направить не только на экран, но, например, и в файл.
В нашей команде нет символа переноса строки. Если Вы решите затем вывести ещё текст:
std::cout << "Hello, world!";
std::cout << "How are u?";
То увидите:
Hello, world!How are u?
Это происходит из-за отсутствия символа перевода строки - '\n'. Чтобы перейти на новую строку, можно написать:
std::cout << "Hello, world!\n";
std::cout << "How are u?";
Последовательность '\n' обозначает перевод строки. Таким образом, результат выполнения программы будет следующим:
Hello, world!
How are u?
Завершение программы
return 0;
Оператор return завершает выполнение функции и возвращает результат. В данном случае функция main возвращает число 0 операционной системе.
По соглашению код 0 означает, что программа завершилась успешно. Ненулевые значения обычно используются для обозначения различных ошибок.
В первой программе мы оставим return 0;, потому что эта строка явно показывает успешное завершение программы и знакомит Вас с оператором return.
При этом считать её обязательной или единственно правильным стилем не следует.; в конце функции main разрешено не писать: если выполнение дошло до закрывающей скобки, компилятор считает, что функция вернула 0. Это специальное правило действует именно для main. Но автор статьи считает, что написание return 0 - признак хорошего тона.
Закрывающая фигурная скобка
}
Последняя фигурная скобка завершает тело функции main. После неё в нашей программе больше нет команд, поэтому выполнение заканчивается.
Как скомпилировать и запустить программу
Сохраните исходный код в файле main.cpp. Расширение .cpp обычно используется для файлов с исходным кодом C++.
Если у Вас установлен компилятор GCC, выполните в терминале:
g++ main.cpp -o hello
Параметр -o hello задаёт имя будущего исполняемого файла. На macOS и Linux запустить его можно командой:
./hello
В результате в терминале появится:
Hello, world!
Если Вы работаете в среде разработки, например CLion, она самостоятельно вызовет компилятор и запустит программу после нажатия кнопки запуска. Однако внутри всё равно происходит тот же основной процесс: исходный код компилируется, а полученная программа выполняется.
Частые ошибки в первой программе
Пропущена точка с запятой
Неправильно:
std::cout << "Hello, world!"
Правильно:
std::cout << "Hello, world!";
Большинство инструкций C++ заканчивается точкой с запятой.
Написано cout без std::
В нашей программе поток cout находится внутри пространства имён std, поэтому мы пишем:
std::cout
С пространствами имён мы подробно познакомимся в отдельной статье.
Подведём итоги
В этой статье Вы познакомились с происхождением C++ и написали первую программу.
Главное, что нужно запомнить:
- C++ является компилируемым и статически типизированным языком;
- C++ поддерживает ООП, но не ограничивается им;
- выполнение программы начинается с функции main;
#include <iostream>подключает заголовок для потокового ввода и вывода;std::coutотправляет данные в стандартный поток вывода;return 0;сообщает об успешном завершении программы.
В следующей статье мы познакомимся с типами данных C++ и узнаем, как программа хранит целые числа, дробные значения, символы и логические значения.
Использованная литература
- ISO/IEC 14882:2024 — Язык программирования C++ [Электронный ресурс]. — URL: https://www.iso.org/standard/83626.html (дата обращения: 02.10.2026).
- Рабочий проект стандарта C++26 — N5054 [Электронный ресурс]. — URL: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/n5054.pdf (дата обращения: 02.10.2026).
- cppreference — Справочник по языку C++ [Электронный ресурс]. — URL: https://en.cppreference.com/w/cpp/language (дата обращения: 02.10.2026).
- Programming: Principles and Practice Using C++, 3-е издание [Электронный ресурс]. — URL: https://www.stroustrup.com/PPP3.html (дата обращения: 02.10.2026).
- A Tour of C++, 3-е издание [Электронный ресурс]. — URL: https://www.stroustrup.com/tour3.html (дата обращения: 02.10.2026).
- Книги Бьёрна Страуструпа [Электронный ресурс]. — URL: https://www.stroustrup.com/books.html (дата обращения: 02.10.2026).
- Бьёрн Страуструп — История создания C++ [Электронный ресурс]. — URL: https://www.stroustrup.com/bs_faq.html#invention (дата обращения: 02.10.2026).