История изменений
Исправление quiet_readonly, (текущая версия) :
Я так понимаю, есть два класса, и хочется связать их друг с другом. Так вот: только один класс может видеть полное определение другого, наоборот — нельзя (исключением является случай, когда оба класса вложены в третий класс, но это неудобно). Вместо этого используют другие подходы:
- Убирается требование видеть определение другого класса: Basic.h включается только в Compile.cpp, а Compile.h только в Basic.cpp.
- Даётся объявление класса вместо определения
class Texture2D; class Sprite { // Здесь можно работать с указателями и ссылками на Texture2D. };
- Из какого-то класса выделяется интерфейс и используется в другом класса, да и вообще паттерны помогают в таких ситуациях.
Исходная версия quiet_readonly, :
Я так понимаю, есть два класса, и хочется связать их друг с другом. Так вот: только один класс может видеть полное определение другого, наоборот — нельзя (исключением является случай, когда класс вложен в другой класс, но это неудобно). Вместо этого используют другие подходы:
- Убирается требование видеть определение другого класса: Basic.h включается только в Compile.cpp, а Compile.h только в Basic.cpp.
- Даётся объявление класса вместо определения
class Texture2D; class Sprite { // Здесь можно работать с указателями и ссылками на Texture2D. };
- Из какого-то класса выделяется интерфейс и используется в другом класса, да и вообще паттерны помогают в таких ситуациях.