Я работаю над процедурной базой построителя уровня игры на рекурсивном конструкторе. Каждый новый объект Door вызывает конструктор для объекта Room за его пределами, который, в свою очередь, вызывает новые конструкторы дверей для своих стен до тех пор, пока не будет достигнут предел комнат. Для правильного обхода мне нужны мои комнаты, чтобы знать, что такое «Дверь» и «Мои двери», чтобы иметь указатели на Комнаты, в которые они идут/из, но компилятор, похоже, не нравится. Сначала у меня была #includes ромашка прикованная (>> означает #include здесь):Как правильно строить классы, которые ссылаются друг на друга? (C++)
randDungeon.cpp >> door.cpp >> door.h >> room.cpp >> room.h >> Библиотека. cpp >> Library.h
но я получаю сообщение об ошибке, когда пытаюсь скомпилировать сообщение с сообщением, что, по существу, room.cpp не знает, что такое объект Door. Если я обращу комнату и дверь в поток выше, я получаю обратную ошибку - мои комнаты знают, что у них есть, но двери больше не понимают Комнату.
Какова правильная организация классов, так что не-наследственные классы Door and Room могут разговаривать друг с другом?
Надеюсь, вы не '# include' ing .cpp файлы ... – LordAro
Мне никогда не говорили, и компилятор не жалуется. Могу я спросить, почему? – redkat85
Написано как ответ – LordAro