Draw基类头文件 draw。h
class CEntDraw : public CObject
{
public:
CEntDraw();
virtual ~CEntDraw();
public:
void Initialize();
virtual void Draw(CDC* pDc) = 0;
protected:
};
Draw基类的实现文件 draw.cpp
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CEntDraw::CEntDraw()
{
Initialize();
}
CEntDraw::~CEntDraw()
{
}
// 初始化图形元素基类数据
void CEntDraw::Initialize()
{
}
派生类 CMairayLine头文件 mairayLine。h
class CMairayLine : public CEntDraw
{
public:
virtual void Draw(CDC* pDc);
CMairayLine();
virtual ~CMairayLine();
};
派生类的实现文件 mairayline.cpp
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMairayLine::CMairayLine()
{
}
CMairayLine::~CMairayLine()
{
}
void CMairayLine::Draw(CDC *pDc)
{
}
在文档类头文件中有下面的声明
class CMairayDoc : public CDocument
{
protected: // create from serialization only
CMairayDoc();
public:
virtual ~CMairayDoc();
...
protected:
CTypedPtrArray<CObArray, CMairayPoint*> m_PointArray;
CTypedPtrArray<CObArray, CMairayLine*> m_LineArray;
...
public:
BOOL AddLineFromDxf(REALPOINT p0, REALPOINT p1);
...
}
文档类的实现文件中
// 增加一线实体
BOOL CMairayDoc::AddLineFromDxf(REALPOINT p0, REALPOINT p1)
{
CMairayLine* pLine = new CMairayLine;
ASSERT(pLine);
if(pLine == NULL)
return FALSE;
m_LineArray.Add(pLine);
return TRUE;
}
问题出在m_LineArray.Add(pLine);
请高手帮忙