Я ужасно запутался в том, что не могу вернуться, и чувствую, что мой проект слишком сильно раздувается, чтобы не отставать от моих нынешних путей.
В двух словах:
1) Существует много графических экранов (окон), каждый экран - это класс, определенный в своем собственном .cpp с сопровождающим заголовком .h с общедоступными и частными замедлениями.
2) Я использую инструментарий FLTK GUI, поэтому, когда я покидаю экран, я вызываю на нем «hide ()», который, как я предполагаю, выполняет сборку мусора, а затем я создаю новый экземпляр любого экрана, которому нужно следовать .
Моя проблема в том, что если экран (экран A позволяет его вызывать) создает другой экран (экран B), то я должен включить заголовочный файл экрана B на экран A, и я делаю глобальный указатель на экран B на экране A. каст.
т. Псеводокод для экрана A
#include "screenb.h"
ScreenB* screenb_ptr; // global
...
Bunch of Code, constructors, deconstructors, etc
...
void ScreenA::exit_and_make_screen_b()
{
ScreenA.hide();
screenb_ptr = new ScreenB();
}
Это лучший подход? Я чувствую, что это небрежно (и утечка памяти?), И у меня должно быть что-то вроде фиктивного .cpp / .h, который отслеживает кучу внешних квалифицированных указателей; тем более, что иногда мне приходится переходить назад / вперед на экраны (т. е. можно переходить к экрану главного меню с нескольких других экранов). Любой совет приветствуется!