问个继承于CObject的类的问题(就这么多分了)

marorabbit 2003-10-20 05:39:53
我有个类继承于CObject;
如下:
line.h
_______________________________________________________________-
class CLine : public CObject
{
DECLARE_SERIAL(CLine)
public:
virtual void Serialize(CArchive &ar);
void Draw(CDC * pDC);
CLine();
virtual ~CLine();

private:
long m_x1;
long m_y1;
long m_x2;
long m_y2;
};
_______________________________________________________________________-
.cpp
________________________________________________________________________
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
IMPLEMENT_SERIAL(CLine,CObject,VERSIONABLE_SCHEMA | 2 )
CLine::CLine()
{
m_x1=0;
m_x2=0;
m_y1=0;
m_y2=0;
}

CLine::~CLine()
{

}

void CLine::Draw(CDC *PDC)
{
PDC->MoveTo(m_x1, m_y1);
PDC->LineTo(m_x2, m_y2);
}

void CLine::Serialize(CArchive &ar)
{
CObject::Serialize(ar);

if (ar.IsStoring())
{
ar<<m_x1<<m_y1;
ar<<m_x2<<m_y2;
}
else
{
ar>>m_x1>>m_y1;
ar>>m_x2>>m_y2;
}
}
______________________________________________________________________--
我在程序中用道:vc6++
CLine x;
CArray <CLine,CLine> m_LineArray;
for(int i=0;i<10;i++)
{
CLine myline;
m_LineArray.Add(myline);
}
错误提示:
No copy constructor available for class 'CLine'
'CLine' : 'operator =' function is unavailable
////////////////////////////////////////////////////////
c++不是说,不提供拷贝构造函数和赋值操作符,编译器会给你提供
谁知道怎么回事
...全文
59 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
beyondtkl 2003-10-20
  • 打赏
  • 举报
回复
你需要再cline中重载 = 与拷贝构造函数.
因为你载这里有用到 CArray<CLine,CLine>
Cbi 编译器没那么聪明为你每个动态的对象产生构造函数,
所以你需要自己提供。

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧