51代码网ORACLEMYSQLSQL SERVER其它数据库java/jspasp/asp.netC/C++/VC++APP应用其它语言服务器应用
您现在的位置: 51代码网 >> C >> 文章正文

在CGraph的派生类中实现Serialize函数

更新时间:2012-2-26:  来源:51代码网
我在写一个绘图程序,程序中加加入一个函数
class CGraph:public CObject 
{...
public:
virtual void Serialize(CArchive &ar)=0;
DECLARE_SERIAL(CGraph)
};
//////////////////////////////////
IMPLEMENT_SERIAL(CGraph,CObject,0)...
每一个图形都派生于CGraph类,并在CGraph的派生类中实现Serialize函数,但是程序在编译的时候出现了错误
C2259,这是怎么回事呀?
最关键的是我不知道怎么改呀?
十分紧急。。。'class' : cannot instantiate abstract class due to following members:
你没有在派生类里面实现函数:Serialize,因为这个在基类是纯虚函数,如果子类不实现它,那么子类就也是虚类,因此子类也不能创建对象了.(eg CLine line)
记着在每个子类中都实现它.C1 Complier的C2259就是这样提示,你要确认你的所有使用的子类中都实现了Serialize函数.你可以在CGraph中不实现它也是可行的,但是你就不能这样用:eg
CGraph objGraph; //因为CGraph还是个纯虚类。
但是你可以这样用:
CGraph *pGraph = new CLine; //其中CLine为CGraph的子类.
赞助商链接
推荐文章
  • 此栏目下没有推荐文章
  • {
    设为首页 | 加入收藏 | 友情链接 | 网站地图 | 联系站长 |