2012-03-16 66 views
0

我有类,在它的一个方法中,我从对象的矢量中获得另一个类的对象,然后调用该对象的方法。问题是,当我调用该方法,我得到一个未解决的外部符号问题,如:当调用一个对象的方法时,无法解析的外部符号

error LNK2019: unresolved external symbol "public: void __thiscall GameChar::draw(void)" ([email protected]@@QAEXXZ) referenced in function "public: void __thiscall Application::gameLoop(void)" ([email protected]@@QAEXXZ) 

,我打电话通知其他对象的方法是gameLoop()的方法,我称之为的draw()方法另一个对象。我已经检查过其他类的所有方法都被定义了,因为我读到了没有定义方法的问题。

+1

你是如何编译它的?唯一可能出现的两个问题是声明了某些内容但未定义,或者您没有编译项目中的.cpp文件(这与第一次未定义的相同) – 2012-03-16 21:57:36

+0

可能重复的[ LNK2019错误C++无法解析的外部符号](http://stackoverflow.com/questions/5730135/lnk2019-error-c-unresolved-external-symbol) – 2012-03-16 21:58:59

+1

您需要显示定义方法的代码以及调用它的代码。另外,这是什么编译器? – 2012-03-16 21:59:40

回答

0

你的问题是该函数已被声明,但没有实现。无论它是在同一个文件,.cpp文件还是库中,函数的主体都需要在那里,然后才能使用它。

由于hmjd指出,这一般能当你把

void draw() 
{ 
    ... 
} 

,而不是

void GameChar::draw() 
{ 
    ... 
} 

前者声明了一个全局的功能,而后者范围它的类GameChar发生。