读书人

不能实例化抽象类,该如何解决

发布时间: 2012-10-11 10:16:10 作者: rapoo

不能实例化抽象类
ProgressBar *Prog1 = new ProgressBar( &MyCtrl );
提示这句错误

承继的父类的虚函数都重写了,但是为什么都出现这个错误呢?
class Universal
{
public:
virtual void Move( CtrlInfo Info ) = 0;
virtual void Visual( bool visual ) = 0;
virtual void StickyInHierarchy() = 0;
CtrlInfo GetInfo() {return InfoSizeLoc;}
void SaveInfo( CtrlInfo Info ){InfoSizeLoc = Info;}

CtrlInfo InfoSizeLoc;

};

class ProgressBar : public Universal
{
void Move( CtrlInfo Info );
void Visual( bool visual );
void StichyInHierarchy();
}

[解决办法]
因为有参构造函数没有实现啊
[解决办法]
ProgressBar( Control *pCtrlClass );
~ProgressBar();

void AddProgress( CtrlInfo Info,TypeProg Prog = 0,Universal *CallBackClass = 0,BYTE Fid = 0,WORD ID = 0 );
void SetVal(float MaxVal = NULL,float Val = NULL);
void SetProgress( float Val );
float GetMaxVal();
float GetVal();
void Move( CtrlInfo Info );
void Visual( bool visual );
void StichyInHierarchy();

Control *pCtrlClass;//这个改下名字试试,
另外,ProgressBar *Prog1 = new ProgressBar( &MyCtrl );
MyCtrl 类型是否对(是不是Control类型),MyCtrl是否已建立成功了,单步执行就可以知道这个变量是否有效

读书人网 >VC/MFC

热点推荐