"database.h"
class class1() {
public: DataBase db;}
2.h:
#include "database.h"
#include "1.h"
class class1() {
public: DataBase db;}
Как правильно это реализовать? Во многие классы проекта добавить объект базы данных, чтобы не было циклического импорта? pragma once?
могу ошибаться, но вроде ifndef для этого есть
Я бы всегда использовал #pragma once или header guards.
Еще раз, а когда его использовать? Писать #pragma once перед каждым #include "database.h" в каждом классе?
#pragma once в начале каждого header и всё. Уточню, что только в *.h/*.hpp файлах эту директиву надо писать. И не надо включать *.c/*.cpp файлы.
Не работает. Добавил в начало каждого .h. Ошибки вида ....task.cpp:3: error: multiple definition of `Task::Task(QString, TYPES, int)'; task.o:...../task.cpp:3: first defined here
Может, у тебя архитектура плохо построена?
Попробуй сделать чистый проект и правильно разнести объявление и определение функции или класса на заголовочный и исходного кода файлы.
Обсуждают сегодня