Практический курс по 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