由于接口导致C ++ lnk错误2019未解决的外部符号虚拟错误...(?)

时间:2013-03-05 14:58:14

标签: c++ interface virtual lnk2019

我在制作好的界面并使用它时遇到了问题...... 我的设置概述:

“界面” GraphicsLibrary.H ...

virtual void drawPoint(const Point& p, unsigned char r, unsigned char g, unsigned char b, double pointSize);

带有“空”的GraphicsLibrary.ccp!因为它是一个界面,所以“OpenGL”是一个图形库...所以我有一个 OpenGL.CPP

void GraphicsLibrary::drawPoint(const Point& p, unsigned char r, unsigned char g, unsigned char b, double pointSize)
{
    //some code
}

其中有一个“空”OpenGL.h(因为他的头文件是GraphicsLibrary.h)

然后我有一个具有更多特定功能的类使用OpenGL,并使用这些基本绘图函数...( OpenGLVis_Enviroment.cpp ):

OpenGL ogl;
void drawObstacleUnderConstruction(Obstacle::Type type, const vector<Point>& points)
{
for( //etcetc )
        ogl.drawPoint(*it, 255, 255, 255, 3.0);
}

但我也有一个使用一些OpenGL功能的主... 所以主要也有:

OpenGL openGL;
openGL.drawText(something);

但现在我有很多错误(我和其他所有功能都一​​样):

1>OpenGLVis_Environment.obj : error LNK2019: unresolved external symbol "public: virtual void __thiscall GraphicsLibrary::drawPoint(struct Point const &,unsigned char,unsigned char,unsigned char,double)" (?drawPoint@GraphicsLibrary@@UAEXABUPoint@@EEEN@Z) referenced in function "void __cdecl DrawingFunctions::drawObstacleUnderConstruction(enum Obstacle::Type,class std::vector<struct Point,class std::allocator<struct Point> > const &)" (?drawObstacleUnderConstruction@DrawingFunctions@@YAXW4Type@Obstacle@@ABV?$vector@UPoint@@V?$allocator@UPoint@@@std@@@std@@@Z)

这是因为我使用“GraphicsLibrary :: drawPoint ...”吗?我在网上搜索的时间很长,但是很难找到很多关于接口的例子......以及如何使用它们...... 在此先感谢你们

1 个答案:

答案 0 :(得分:1)

链接器抱怨DrawingFunctions::drawObstacleUnderConstruction并且您定义了void drawObstacleUnderConstruction,这是一个免费功能。

定义函数时限定名称。

void DrawingFunctions::drawObstacleUnderConstruction(Obstacle::Type type, const vector<Point>& points)
{
    for( //etcetc )
        ogl.drawPoint(*it, 255, 255, 255, 3.0);
}