65,187
社区成员




/*
这么写对不,其中virtual void Display();是对Finger之虚函数Display()的重新定义。
*/
#include "Finger.h"
class Index : public Finger
{
public:
Index();
virtual ~Index();
double m_dR,m_dL1,m_dL2,m_dL3;
virtual void Display();
};
--------------------Configuration: Hand Modeling - Win32 Debug--------------------
Linking...
Finger.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall Finger::Display(void)" (?Display@Finger@@UAEHXZ)
Debug/Hand Modeling.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Hand Modeling.exe - 2 error(s), 0 warning(s)
class Finger
{
public:
Finger();
virtual ~Finger();
virtual Display();//少了返回类型void
};
//虚函数的实例
#include<iostream.h>
class Cshape
{ public: void SetColor( int color) { m_nColor=color;}
void virtual Display( void) { cout<<"Cshape"<<endl; }
private:
int m_nColor;
};
class Crectangle: public Cshape
{
public:
void virtual Display( void) { cout<<"Crectangle"<<endl; }
};
class Ctriangle: public Cshape
{
void virtual Display( void) { cout<<"Ctriangle"<<endl; }
};
class Cellipse :public Cshape
{
public: void virtual Display(void) { cout<<"Cellipse"<<endl;}
};
void main()
{
Cshape obShape;
Cellipse obEllipse;
Ctriangle obTriangle;
Crectangle obRectangle;
Cshape * pShape[4]=
{ &obShape, &obEllipse,&obTriangle, & obRectangle };
for( int I= 0; I< 4; I++)
pShape[I]->Display( );
}
//不知道哪里出现了问题,自己检查不出来,列出源代码,以供参考:
class Index : public Finger
{
public:
Index();
virtual ~Index();
double m_dR,m_dL1,m_dL2,m_dL3;
virtual void Display(); //错误指在这行
};
//下面是Finger类
class Finger
{
public:
Finger();
virtual ~Finger();
virtual Display();
};
//下面是Index的Display()函数
virtual void Index::Display()
{
//中间是绘图代码,省略之
}