2017-11-16 7 views
-3

このエラーは「制御が非空白関数の終わりに達する可能性があります」と続きます。誰かが私を助けてくれる?私はここで立ち往生している。ありがとうございました。この警告の取得「制御は非空白関数の終わりに到達する可能性があります」

bool Vector_double::erase(int ind1, int ind2){ 
    if(ind1 >= count || ind2 >= count || ind1 >= ind2){ 
     if(ind1 == ind2){ 
      erase(ind1); 
      return true; 
     } 
     return false; 
    } 
    else{ 
     double *narr = new double[count - ind2 - 1]; 
     for(int i = ind2 + 1; i < count; ++i){ 
      narr[i - ind2 - 1] = arr[i]; 
     } 
     for(int i = ind1; i < ind1 + count - ind2 - 1;++i){ 
      arr[i] = narr[i - ind1]; 
     } 
     count = count - (ind2 - ind1) - 1; 
    } 
} 
+9

あなたの関数はelse部分で何を返しますか? –

+2

2番目の部分で割り当てられた配列はどこから解放されますか?ところで、私は 'return'の後に' else'を削除するか、少なくともそれを一貫して使用します。 –

答えて

2

あなたの関数は何かを返すことを約束します(bool)。ただし、コードには何も返されないパスが含まれています。このバグを修正するには、まず返される値が何を表現するのかを文書化することから始めます。次に、コードを調整します。

関連する問題