Парочка вариантов:
1) Гетерами - создаём функцию, которая при вызове возвращает ваши данные в удобоваримом виде. Функция публичная, собственно надо знать лишь указатель на класс.
Сложность - нулевая.
Недостаток - путаница указателей классов между собой.
2) сигнал-слотовым механизмом. О нём написано много, суть - делаем сигнал, передающий данные и привязываем его к слоту.
Сложность - для новичка средне
Недостаток - слоты работают медленнее чем прямой вызов функций.
3) сигнлтон. Класс, доступный всем и существующей в единичном экземляре. Позволяет получить доступ к переменным кому угодно, откуда угодно в вашей программе.
Сложность - средняя. (но много инфы
)
Недостаток - нужна синхронизация доступа.
4) делать класс - менеджер, руководящий процессом. Имеющий в себе указатели на все ваши основные классы и организующий общение их между собой при помощи прямых вызовов функций.
Сложность - легкая, но архитектуру надо продумать.
Недостаток - архитектура сначала кривая бывает
PS эк я выпендрился