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

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

Introduction

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

Вынос части кода в соседний .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

To не перечислять все функции которые вы хотите использовать в главном файле можно упомянуть их в специальном 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 остаётся без изменений.

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

To скомпилировать проект нужно перечислить все нужные .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

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

Related Articles
Development на C++
Перегрузка функций
Разбиение кода на части
Вектор. Часть 0
Вектор. Часть 1
Вектор. Часть 2
Указатели
Классы
SFML
Тетрис на C++ с библиотекой SFML2
SDL
Массив Структур
Как узнать тип переменной C++
Решение задач на C++
Как создать пустую строку в C++
Errors C++
Make