Therapyx: Нет, если используете указатели достаточно предварительного определения. Ссылки на инклуды понадобится помещать в cpp. Проблема с перекрестным использованием классов известная . Гуглите.
maaGames: Therapyx: не совсем так. В класс можно вставлять объект другого класса и он будет занимать определенное место (sizeof(obj) ). Два класса имеющие в качестве полей объекты друг друга вызывают бесконечную рекурсию. Телефон содержит симкарту, которая содержит телефон, который содержит симкарту... Поэтому рекурсия развязывается использованием для одного поля указателем или ссылкой. Любой указатель это всегда 4 байта (для 32 битой сборки).