yotaartist
@yotaartist
PHP Dev

Реализация обоюдного включения файлов проекта?

Делаю клавиатурный тренажёр. В основном файле надо включить хедер, чтобы вызвать окно смены текста. А в файле формы смены текста, соответственно, надо вызвать функцию, которая уже будет менять поле с текстом. Только вот обычные инклуды не работают, т.к. ошибка "файл включает сам себя" даёт о себе знать. Как можно быстро и без сложностей решить этот вопрос?
  • Вопрос задан
  • 47 просмотров
Решения вопроса 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Надо чтобы не было циклических зависимостей. Подумайте над структурой проекта - вынесите какие-то функции в отдельные файлы, которые уже будут включатся и в файле формы и в основном файле, если надо.

В особо запущенных случаях придется какие-то функции или классы дробить.

Ну и Include guard'ы используйте
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Adamos
@Adamos
Собственно, обычно на самом деле нет необходимости включать заголовки друг в друга.
// file1.h
#include "file2.h"

// file2.h
#include "file1.h"

Так, конечно, не будет работать, но это и не требуется.
// file1.h
#include "file2.h"

// file2.cpp
#include "file1.h"

Так и соблюдаются необходимые связи, и не возникает конфликта. Разумеется, если использован include guard.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы