Я знаю, что раньше об этом спрашивали миллиард раз, но у меня все еще проблемы.
Я начал с одного main.cpp
файла, который содержал весь мой код.Скажем, это выглядело так:
int a = 0;
void foo() {
a+1;
}
void bar() {
a+2;
}
int main() {
foo();
bar();
a + 3;
}
Теперь я хочу разделить этот код на несколько файлов для более удобного управления.Я хотел бы иметь только один заголовок, header.h
и три .cpp
файла: main.cpp
, foo.cpp
и bar.cpp
.
ATM, вот что у меня есть:
//header.h
int a = 0;
void foo();
void bar();
.
//foo.cpp
#include "header.h"
void foo() {a+1;}
.
//bar.cpp
#include "header.h"
void bar() {a+2;}
.
//main.cpp
#include "header.h"
int main() {
foo();
bar();
a + 3;
}
К сожалению, компоновщик жаловался, что я определил a
многократно.Я пытался использовать #ifdef
, но это только защищает от переопределения в том же файле, правильно?Как я могу сделать эту работу?
РЕДАКТИРОВАТЬ: изменил вопрос, я только что понял, что это переменные, которые были определены несколько раз, а не функции.