Mfc 我将如何处理此链接器错误?

Mfc 我将如何处理此链接器错误?,mfc,error-handling,polymorphism,linker-errors,Mfc,Error Handling,Polymorphism,Linker Errors,我正在构建一个mfc应用程序,使用户能够绘制图形对象(类似ms paint)。但由于某些原因,我得到以下链接器错误: CElement.obj:错误LNK2001:未解析的外部符号“public:virtual void u thiscall CElement::Draw(类CDC*)”(?Draw@CElement@@UAEXPAVCDC@@@Z) 我知道这与CPolygon类中的虚拟绘制函数有关。但到底是什么原因造成的呢 //芹菜 class CElement : public CObjec

我正在构建一个mfc应用程序,使用户能够绘制图形对象(类似ms paint)。但由于某些原因,我得到以下链接器错误:

CElement.obj:错误LNK2001:未解析的外部符号“public:virtual void u thiscall CElement::Draw(类CDC*)”(?Draw@CElement@@UAEXPAVCDC@@@Z)

我知道这与CPolygon类中的虚拟绘制函数有关。但到底是什么原因造成的呢

//芹菜

class CElement : public CObject
{
 public:
 virtual ~CElement();
 virtual void Draw(CDC* pDC);

};
注意:CElement将作为所有其他类(如CPolyline和CRectangle)的基类。Draw函数是虚拟的——作为多态性的一个示例,CElement的Draw(CDC*pDC)将被派生类的Draw()函数覆盖

class CPolygon : public CElement
{
public:

CPolygon(CPoint mFirstPoint,CPoint mSecondPoint);
~CPolygon(void);
virtual void Draw(CDC* pDC); 

---------------------------------------------------------------------------------------

//CElement.cpp

 #include "CElement.h"

 //constructors for the class

 void CPolygon::Draw(CDC* pDC)
 {
  pDC->MoveTo(mStartPoint);
  pDC->LineTo(mEndPoint);

} 错误消息说您还没有为函数定义主体

virtual void Draw(CDC* pDC);
要么定义它,要么使类抽象,即派生类必须实现它

virtual void Draw(CDC* pDC) { }

virtual void Draw(CDC* pDC) = 0;