Разделить код на несколько файлов C++

Содержание
Введение
Вынос в соседний файл
.h : Заголовочные файлы
Компиляция и запуск
Пример с перегрузкой функции
Другие статьи о С++

Введение

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

Вынос части кода в соседний .cpp файл

Файл можно разделить на несколько частей и положить эти .cpp файлы в одну директорию.

Назовём главный файл, где Вы вызываете main() Main.cpp

Создайте файл Functions.cpp и перенесите туда все функции.

В Main.cpp укажите названия функций, которые вы перенесли и аргументы, которые они принимают.

Main.cpp

#include <iostream> using namespace std; double add(double x, double y); int main() { double b = add(1.3, 4.5); cout << "1.3 + 4.5 is " << b; return 0; }

Создайте новый файл Functions.cpp который будет содержат только функции:

double add(double x, double y) { return x + y; }

Header Files

Чтобы не перечислять все функции которые вы хотите использовать в главном файле можно упомянуть их в специальном Header файле с расширением .h

Назовём его Functions.h и подключим к главному с помощью директивы #include

Main.cpp

#include <iostream> #include "Functions.h" int main() { double b = add(1.3, 4.5); cout << "1.3 + 4.5 is " << b << "\n"; return 0; }

Файл Functions.h

#pragma once double add(double x, double y);

#pragma once

или

#ifndef
#define

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

Файл Functions.cpp остаётся без изменений.

Banner image

Компиляция и запуск

Чтобы скомпилировать проект нужно перечислить все нужные .cpp файлы.

В данном примере это

g++ main.cpp Functions.cpp -o main
./main

1.3 + 4.5 is 5.8

Пример с перегрузкой

Добавим функций разного типа, чтобы убедиться в работоспособности кода

Если вы разди эксперимента хотите перегрузить функцию add() ничего в описанном выше подходе менять не нужно.

Просто добавьте перегруженную функцию в Functions.cpp и Functions.h а потом вызовите из main.cpp

Main.cpp

#include <iostream> #include "Functions.h" int main() { double b = add(1.3, 4.5); cout << "1.3 + 4.5 is " << b << "\n"; double c = add(1.0,2.0,3.0); cout << "1 + 2 + 3 is " << c << "\n"; // 6 return 0; }

Functions.cpp

bool test(bool x) { return x; } bool test(double x) { return x > 0; } double add(double x, double y) { return x + y; } double add(double a, double b, double c) { return a + b + c; }

Functions.h

#pragma once double add(double x, double y); double add(double a, double b, double c); bool test(bool x); bool test(double x); void test(int y);

g++ main.cpp Functions.cpp -o main
./main

1.3 + 4.5 is 5.8
1 + 2 + 3 is 6

Если файлов становится много - бывает полезно создать Makefile

Подробнее читайте в статьях

Article author: Andrei Olegovich

Похожие статьи
Development на C++
Перегрузка функций
-c: Компиляция
Вектор
Указатели
Классы
SFML
Тетрис на C++ с библиотекой SFML2
SDL
Массив Структур
Как узнать тип переменной C++
Решение задач на C++
Как создать пустую строку в C++
Запросы к REST API на C++
Ошибки C++
Make

Search this site

Subscribe to Telegram channel @aofeed to follow new articles and updates to old ones

Go to channel

@aofeed

Ask a question in the Telegram group

@aofeedchat

Contacts and cooperation:
I recommend our hosting beget.ru
Write to info@urn.su if you:
1. Want to write an article for our site or translate an article into your native language.
2. Want to place thematically relevant ads on the site.
3. Ads on my site pass maximum censorship. If you see an ad block unsuitable for school-age children, shocking or misleading - please contact us by e-mail
4. Found a mistake, inaccuracy, bug, etc. on the site. ... .......
5. Articles can be shared on social media by clicking a network icon: