template<class T>
class ExtentSink
{
public:
struct ES
{
ES *rlink;
ES *llink;
T extents;
};
ES es;
ES rp;
ES *p; ExtentSink(ES *a=NULL,ES *b=NULL,T c=0){es.rlink=a;es.llink=b;es.extents=c;}
~ExtentSink() { delete rp.rlink; }
void Add(T m,int i)
{
if(i==0)
{
es.extents=m;
es.llink=NULL;
es.rlink=NULL;
rp.llink=&es;
rp.rlink=&es;
}
if(i!=0)
{
p=new ES;
p->llink=rp.llink;
p->extents=m;
p->rlink=NULL;
rp.rlink=p;
rp.llink=p;
}
} T Pre()
{ return rp.llink->extents;
} T Next()
{
rp.llink=rp.llink->rlink;
rp.rlink=rp.rlink->rlink;
return rp.llink->extents;
}};求问哪里错了
class ExtentSink
{
public:
struct ES
{
ES *rlink;
ES *llink;
T extents;
};
ES es;
ES rp;
ES *p; ExtentSink(ES *a=NULL,ES *b=NULL,T c=0){es.rlink=a;es.llink=b;es.extents=c;}
~ExtentSink() { delete rp.rlink; }
void Add(T m,int i)
{
if(i==0)
{
es.extents=m;
es.llink=NULL;
es.rlink=NULL;
rp.llink=&es;
rp.rlink=&es;
}
if(i!=0)
{
p=new ES;
p->llink=rp.llink;
p->extents=m;
p->rlink=NULL;
rp.rlink=p;
rp.llink=p;
}
} T Pre()
{ return rp.llink->extents;
} T Next()
{
rp.llink=rp.llink->rlink;
rp.rlink=rp.rlink->rlink;
return rp.llink->extents;
}};求问哪里错了
xxxxxx.exe 中的 0x52317678 (mfc100d.dll) 处有未经处理的异常: 0xC0000005: 读取位置 0xcdcdcdd5 时发生访问冲突
点击中断,监视栏中写着:CXX0025:错误:运算符要求类/结构/联合
指向这一段代码:m_lpDispatch = dispatchSrc.m_lpDispatch;
COleDispatchDriver::COleDispatchDriver(const COleDispatchDriver& dispatchSrc)
{
ASSERT(this != &dispatchSrc); // constructing from self? m_lpDispatch = dispatchSrc.m_lpDispatch;
if (m_lpDispatch != NULL)
m_lpDispatch->AddRef();
m_bAutoRelease = TRUE;
}
如果是指针变量,应按照dispatchSrc -> something形式使用。
如果是对象实例,应按照dispatchSrc.something形式使用。并请注意在传入函数前,dispatchSrc参数应该有正确的赋值。