Основы С++: Первый пример программы с несколькими файлами исходного кода

232 прочитали

В прошлой статье, рассматривая правило ODR, мы впервые упомянули возможность создания нескольких файлов в исходном коде для написания одной программы.

Это действительно практикует повсеместно. Программы усложняются и программисты для организации кода используют различное количество файлов с ним, которые потом компилируются в одну целостную программу.

В этой статье мы создадим еще один файл с исходным кодом. Я буду пользоваться IDE Visual Studio от Microsoft, а вы, если используете другую IDE, найдите в интернете способ создать в ней дополнительный файл в вашем тестовом проекте.

Преимущество IDE перед простыми редакторами кода в том, что в нее встроена функция создания новых файлов .cpp прямо внутри проекта.

Итак, приступим...

Добавление нового файла в Visual Studio (VS)

Добавление нового файла в Visual Studio ваш тестовый проект (решение), воспользуйтесь окном "Обозреватель решений", расположенным в VS справа.

Я не стал называть свой тестовый проект, поэтому он называется просто "Консольное приложение4" на английском языке
Я не стал называть свой тестовый проект, поэтому он называется просто "Консольное приложение4" на английском языке

В обозревателе решений кликните правой кнопкой мышки на вкладку "Исходные файлы", и выберите в открывшемся меню, пункт "Добавить".

Вот так это выглядит.
Вот так это выглядит.

Выберите создать элемент и в новом окне выберите строку "Файл С++ (.cpp)".

В прошлой статье, рассматривая правило ODR, мы впервые упомянули возможность создания нескольких файлов в исходном коде для написания одной программы. Это действительно практикует повсеместно.-3

Ура, новый файл .сpp создан, он находится в исходных файлах вашего проекта и пока пуст.

Сделаем программу с двумя файлами, на примере нашей программы из прошлой статьи. Напомню, что в прошлой статье мы решали задачу, в которой наша программа не хотела компилироваться, потому что компилятор в ней не мог найти где находится функция, которую нужно было вызвать. Функция находилась ниже места ее вызова. Тогда мы пользовались предварительным объявлением и решали поставленную задачу. Было это так:

В прошлой статье, рассматривая правило ODR, мы впервые упомянули возможность создания нескольких файлов в исходном коде для написания одной программы. Это действительно практикует повсеместно.-4

Теперь мы попробуем написать эту же программу, используя два файла в нашем проекте. Так мы наглядно увидим как все работает.

Рубрика "Ответ на комментарии":

Под прошлой статьей про "Предварительное объявление функций" был вопрос о том: "А зачем оно вообще нужно, если можно сразу описать функцию?"
Спойлер: В примере с двумя файлами мы будем его использовать и там оно как раз таки будет очень даже нужно!

Сейчас мы создадим программу, которая печатает текст на английском: Разность чисел 10 и 15 равна -5.

Для этого сначала перенесем нашу функцию, которая получает аргументы в переменные х, y и потом вычитает их, в новый, созданный недавно, файл.

В прошлой статье, рассматривая правило ODR, мы впервые упомянули возможность создания нескольких файлов в исходном коде для написания одной программы. Это действительно практикует повсеместно.-5

А теперь, та-дааам. В основном файле менять больше ничего не нужно. Функция difference там предварительно объявлена. Компилятор уже знает о ее существовании, а значит когда она будет вызвана, компоновщик возьмет ее из нашего второго файла и исполнит все инструкции из нее.

В прошлой статье, рассматривая правило ODR, мы впервые упомянули возможность создания нескольких файлов в исходном коде для написания одной программы. Это действительно практикует повсеместно.-6

Напишите этот код в основной файл, скомпилируйте и запустите эту программу. Вы убедитесь, что все работает. Функция main успешно вызывает функцию difference из другого файла, благодаря ее предварительному объявлению перед main. Весь прочий код, в том числе инструкции из вызываемой функции, выполняется без ошибок.

Надеюсь, теперь вам понятна необходимость использования предварительного объявления в некоторых программах. А так же, ваше знакомство с программами, состоящими из нескольких файлов, прошло успешно.

Спасибо за внимание.

Оставляйте лайки и комментарии. Задавайте вопросы и делитесь мнениями.

Следующий материал будет совсем скоро. Подпишитесь, чтобы не пропустить.