jiefen111 发表于 2008-4-16 16:56

大侠们帮忙看一下什么错误

template <class Type> SqList<Type>& SqList<Type>::MergeList(SqList<Type> &La)
{
   int lena=La.Length();
   int len=Length();
   SqList <Type> Lc(lena+len+1),&Lb=Lc;
   Type a,b;
   int i=0,j=0;
   int k=-1;
   while(i<len && j<lena){
       a=Get(i);
           b=La.Get(j);
           if(a<b){
                   Lb.Insert(a,++k);
                   i++;
           }
           else if(a>b) {
                   Lb.Insert(b,++k);
                   j++;
           }else{
               Lb.Insert(a,++k);
                   i++;
                   j++;
           }
   }
   while(i<len){
              a=Get(i);
          Lb.Insert(a,++k);
                  i++;
   }
   while(j<lena){
              b=La.Get(j);
          Lb.Insert(b,++k);
                  j++;
   }
   return Lc;
}是不是引用那边错了

中学者 发表于 2008-4-16 17:02

语法似乎没错,但是你返回局部对象的引用就不好

herolzx 发表于 2008-4-17 08:42

返回局部变量是很不安全的,会出现逻辑错误。

return Lc;

jiefen111 发表于 2008-4-19 14:05

以解决,谢谢大家

页: [1]

编程论坛