我正在为 C++ 构建一个 GUI 类并处理很多指针。一个示例调用:
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();
我希望我的问题只是语法问题。谢谢您的帮助 :)