Разделить код на несколько файлов 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 остаётся без изменений.
РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе
Конец рекламы от Яндекса. Если в блоке пусто считайте это рекламой моей телеги
Компиляция и запуск
Чтобы скомпилировать проект нужно перечислить все нужные .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
Подробнее читайте в статьях
РЕКЛАМА от Google. Может быть недоступна в вашем регионе.
Конец рекламы от Google. Если в блоке пусто считайте это рекламой моей телеги