- окно (Window) и сущность (Entity). Окно хранит в себе набор сущностей, а сущности используют окно для отрисовки себя. Получается так, что они инклудят друг друга. Но при сборке происходит ошибка
error: ‘Window’ has not been declared
в файле сущности есть строка
#include "window.h"
что делать? как собрать?
Где-то придется хранить ссылочный тип и использовать forward declaration в хедере, а инклюдить в .cpp
свой
Два объекта разных классов не могут содержать друг друга по значению. Это должно быть вполне очевидно. Если автомобиль содержит в себе двигатель и руль, то двигатель не может содержать в себе автомобиль, Ну например Потому что автомобиль тупо больше А ещё и потому что в автомобиле опять-таки должен быть двигатель который должен содержать автомобиль который должен содержать двигатель который должен содержать автомобиль и так до бесконечности точка такого быть не может это понятно?
у меня все через указатели. Точнее говоря, окно содержит двусвязный список сущностей и в метод отрисовки тоже прилетает указатель на окно
тогда проблем быть не должно
проблема в том, что они друг друга инклюдят и не знают о существовании друг друга на момент компиляции одного из модуля. По итогу forward declaration действительно решил проблему. я и раньше знал про это, но только с функциями, а не с классами
Обсуждают сегодня