Первая программа на С++

Практический курс по C/C++: https://stepik.org/course/193691

Первым делом нам нужно настроить среду программирования с компилятором языка С++. Для учебных целей вполне подойдет Visual Studio Code с ранее установленным компилятором gcc. Для проверки работоспособности компилятора достаточно открыть командное окно и ввести команду:

g++ --version

Если отобразится версия, значит, все настроено и готово к работе. Иначе, необходимо установить компилятор. О том, как это делается, рассказывается на одном из первых занятий по языку Си.

После этого я создам каталог:

D:\Projects\vscode\course_cpp

в котором будут размещаться файлы с программой на С++ и соответствующие исполняемые файлы. У вас может быть любой другой маршрут расположения файлов. Старайтесь только в названиях не использовать кириллицу и символы пробела.

Перейдем в программу Visual Studio Code и откроем созданную папку. Нажмем «New File...» и создадим текстовый файл с именем:

course.cpp

Обратите внимание на расширение файла – cpp. Модули с текстами программ на языке С++ принято сохранять с таким расширением.

Далее, запишем первую программу на С++. Она будет следующей:

// Первая программа на языке С++
#include <iostream>
 
int main()
{
    std::cout << "Hello World!" << std::endl;
    
    return 0;
}

Позже я поясню, что означают все эти строчки, а вначале давайте попробуем ее скомпилировать и запустить. Для этого я из папки с программой на чистом Си скопирую каталог .vscode с настроечными JSON-файлами. И открою в VS Code файл settings.json. В этом файле прописаны связи между расширениями файлов и соответствующими запусками компиляторов. В частности, для расширения cpp используется компилятор g++. В целом, меня здесь все устраивает, дополнительно только пропишу версию стандарта этого компилятора С++14 следующим образом:

cd $dir && g++ -std=c++14 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt

Попробуем теперь откомпилировать и запустить программу (Ctrl + Alt + n). Видим на экране сообщение «Hello World!».

И сделаем еще одну настройку автоматической прокрутки скроллинга вкладки OUTPUT среды VS Code. Для этого перейдем в настройки (File -> Preferences -> Settings). Здесь выберем Features -> Output и уберем галочку у «Smart Scroll».

Давайте, теперь вернемся к самой программе и разберемся, из чего она состоит. В первой строчке записан однострочный комментарий (появился в языке С++) и все, что идет после символов // до конца строки помечается, как комментарий. Причем, однострочное комментирование не обязательно начинать с начала строки, его можно указать в любом месте, например, после объявления заголовка функции main:

int main()  // точка входа в программу

Для одной строки такие комментарии прописывать гораздо удобнее, чем /* */, которые изначально были определены в языке Си. В С++ можно применять оба вида.

Следующая строчка – это уже знакомая вам директива #include для включения файла iostream в текущем модуле. В данном случае это необходимо для использования объекта cout, с помощью которого удобно выводить данные в стандартный выходной поток stdout. Ранее, в языке Си, мы для этой цели часто использовали функцию printf(). В языке С++ этот процесс несколько упрощен благодаря объекту cout. Что это за объект и как он в деталях работает, речь еще впереди.

Далее, идет стандартная функция main(), которая определяет точку входа в программу, то есть, в языке С++ (также, как и в языке Си) программа начинает выполняться с автоматического вызова функции main() и завершается, при ее завершении.

Следующая конструкция:

std::cout << "Hello World!" << std::endl;

отвечает за вывод информации в стандартный выходной поток. Здесь в глаза бросается фрагмент «std::…». Ключевое слово std – это предопределенное название пространства имен, так называемой, стандартной библиотеки языка С++. Как я отмечал во вступлении, в язык С++ на уровне стандарта включили библиотеку STL, которая заметно упрощает работу со сложными коллекциями и типами данных, таких как:

  • строки (std::string);
  • массивы (std::array);
  • динамический массив (std::vector);
  • двухсвязный список (std::list);
  • очередь (std::deque);
  • упорядоченные множества (std::set);
  • упорядоченные ассоциативные массивы (std::map)

и многое другое. Так вот, чтобы обратиться к тому или иному определению в пространстве стандартной библиотеки, следует прописать название этого пространства std и через два двоеточия (четвероточие) указать нужный элемент. В частности, cout – это объект класса ostream, который отвечает за вывод информации в стандартный выходной поток. Затем, используя переопределенную операцию <<, указываются выводимые данные. В конце, после вывода строки «Hello World!» прописан endl. Он передает символ переноса строки и очищает буфер потока, к которому применен.

Вас может удивить, что для понимания работы такой простой программы на С++ нужно знать и о пространстве имен, и об объектах классов, и, по-хорошему, о самих классах. Это, действительно, так. Конечно, на начальном этапе подобные моменты можно просто запомнить и применять без глубокого понимания их работы. Часто так и делается. В конце концов, язык С++ (равно, как и Си) был придуман не для обучения программированию, а чтобы дать программистам эффективный и высокоуровневый инструмент разработки программ качественно транслирующихся в машинный код, то есть, выполняющихся с наибольшей скоростью. Поэтому, если вам не понятны слова «объект», «класс», «пространство имен» и прочее, то пока просто запоминайте приведенные конструкции по факту, а более глубокое понимание придет позже.

Итак, на этом занятии мы с вами сделали первый шаг в языке С++. Настроили интегрированную среду с компилятором g++ стандарта C++14, написали и выполнили первую простую программу. На следующем занятии уже непосредственно начнем изучать конструкции языка С++.

Практический курс по C/C++: https://stepik.org/course/193691

Видео по теме