例如下面这个类的赋值函数该怎么写:
class segment { 
public:
segment* prev;
segment* next;
int     nRows;
}我写成这样,好像进入无限循环了:
segment& operator =(segment& seg)
{
if (NULL != seg.prev) 
{
prev=new segment;
*prev=*(seg.prev);

}
if ( NULL != seg.next)
{
next=new segment;
*next=*(seg.next);
}
nRows=seg.nRows;
return *this;
}

解决方案 »

  1.   

    new之前你不需要把原先的next或prev delete吗?
      

  2.   

    象这样的指针表可以用结构体来完成,象这样用类的话类的构造和析构就必须考虑进去。你的程序好象是要把某个类插入到两个类之间但,你又是在类A中构造类B,把B插入大类的列表中去。但你的类A 不知道是个什么东西、从哪里来的。类中派生类就有一个局部变量的限制不知道你注意没有。
      

  3.   

    思路没错,不过Simple is the best!