Я создаю класс GUI для C ++ и много работаю с указателями. Пример вызова:
mainGui.activeWindow->activeWidget->init();
Моя проблема в том, что я хочу привести указатель activeWidget к другому типу. activeWidget имеет тип GUI_BASE. Полученный из BASE у меня есть другие классы, такие как GUI_BUTTON и GUI_TEXTBOX. Я хочу привести указатель activeWidget из GUI_BASE в GUI_TEXTBOX. Я предполагаю, что это будет выглядеть примерно так:
(GUI_TEXTBOX*)(mainGui.activeWindow->activeWidget)->function();
Это не работает, потому что компилятор все еще думает, что указатель имеет тип GUI_BASE. Однако следующий фрагмент кода работает:
GUI_TEXTBOX *textbox_pointer;
textbox_pointer = (GUI_TEXTBOX*)mainGui.activeWindow->activeWidget;
textbox_pointer->function();
Я надеюсь, что моя проблема здесь - просто проблема синтаксиса. Спасибо за помощь:)