Обычно вы должны объявлять ваши классы / функции в файлах .h (заголовок) и реализовывать их в файлах .cpp.Как правило, хорошей идеей является добавление include guard в ваши файлы .h, поэтому включение их несколько раз не является проблемой.Таким образом, ваши файлы .cpp могут включать любой файл .h без каких-либо конфликтов.
Пример;test.h
#ifndef TEST_H
#define TEST_H
class test {
public:
void bop();
}
bool hasLogin();
#endif
и соответствующий файл .cpp
#include <iostream>
#include "test.h"
void test::bop() {
std::cout << "bop" << std::endl;
}
bool hasLogin() {
return false;
}