我有类,在其中一个方法中,我从一个对象向量中获取另一个类的对象,然后调用该对象的方法。问题是,当我调用该方法时,我得到一个未解决的外部符号问题,如下所示:
error LNK2019: unresolved external symbol "public: void __thiscall GameChar::draw(void)" (?draw@GameChar@@QAEXXZ) referenced in function "public: void __thiscall Application::gameLoop(void)" (?gameLoop@Application@@QAEXXZ)
我调用另一个对象的方法的方法是gameLoop(),我调用另一个对象的draw()方法。我已经检查了其他类的所有方法都已定义,因为我读到没有定义方法通常是问题。
答案 0 :(得分:0)
您的问题是该功能已声明但未实现。无论是在同一个文件,.cpp文件还是库中,函数体都需要存在才能使用它。
正如hmjd指出的那样,这通常会在你提出
时发生void draw()
{
...
}
而不是
void GameChar::draw()
{
...
}
前者声明一个全局函数,而后一个函数将其范围扩展到类GameChar
。
答案 1 :(得分:0)
另一件需要注意的事情;确保您的 .cpp 文件确实出现在您的项目文件中;昨晚我无法找出一个愚蠢的链接器错误,我只是检查了我的项目,显然我从未添加过必要的 .cpp 文件(它们存在于磁盘上,但在项目中丢失了)。很容易忽略这一点,所以请注意。