gpt4 book ai didi

c++ - 链接器错误未定义对 vtable 的引用

转载 作者:太空狗 更新时间:2023-10-29 21:23:37 24 4
gpt4 key购买 nike

我正在处理的 wxWidgets 项目似乎有问题。对于一个不涉及任何虚函数的类,我不断收到 vtable 链接器错误。我想知道是否有人可以阐明这个问题,因为根据我的理解,不应该有一个不使用虚函数的类的 vtable。我见过的大多数类似主题都发生在有人忘记定义解构函数时,但我很确定解构函数已正确定义。错误如下所示。

||=== Hike Planner GUI, Debug ===|
obj\Debug\GUIFrame.o||In function `PlanWindow':|
E:\Projects\Hike Planner GUI\GUIFrame.cpp|76|undefined reference to `vtable for PlanWindow'|
E:\Projects\Hike Planner GUI\GUIFrame.cpp|76|undefined reference to `vtable for PlanWindow'|
obj\Debug\GUIFrame.o||In function `~PlanWindow':|
E:\Projects\Hike Planner GUI\GUIFrame.cpp|81|undefined reference to `vtable for PlanWindow'|
E:\Projects\Hike Planner GUI\GUIFrame.cpp|81|undefined reference to `vtable for PlanWindow'|
E:\Projects\Hike Planner GUI\GUIFrame.cpp|81|undefined reference to `vtable for PlanWindow'|
||=== Build finished: 5 errors, 0 warnings ===|

来自 GUIFrame.h 的片段

class PlanWindow : public wxWindow
{
DECLARE_EVENT_TABLE()

public:
PlanWindow(wxWindow* parent, wxWindowID id);

~PlanWindow();

void GetLocationList(int RetCode);

wxListBox *PlanList;
};

来自 GUIFrame.cpp 的片段:

PlanWindow::PlanWindow(wxWindow* parent, wxWindowID id) : wxWindow(parent,id) 
{

}

PlanWindow::~PlanWindow()
{

}

void PlanWindow::GetLocationList(int RetCode)
{
if(RetCode == DEST)
{

}
else if(RetCode == TH)
{

}
else if(RetCode == FREE)
{

}
else
{

}
}

任何帮助都会很棒。错误发生在构造函数和析构函数定义处。

最佳答案

您还需要在 cpp 文件中使用 BEGIN_EVENT_TABLE/END_EVENT_TABLE实现声明的事件表。一个例子;

BEGIN_EVENT_TABLE(PlanWindow, wxWindow)
// EVT_SIZE (PlanWindow::OnSize) // Example size handler
END_EVENT_TABLE()

关于c++ - 链接器错误未定义对 vtable 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17865440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com