2017-11-16 22 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

두 번째 부분에서 할당 된 배열은 어디에서 출시됩니까? BTW : 나는'return' 후에'else'를 제거하거나 적어도 일관되게 사용합니다. –

답변

2

귀하의 기능은 무엇인가 (bool를) 반환 할 것을 약속드립니다. 그러나 코드에는 아무 것도 반환하지 않는 경로가 포함되어 있습니다. 이 버그를 수정하려면 반환 값이 표현해야하는 내용을 문서화하여 (보통 영어로) 시작하십시오. 그런 다음 코드를 조정하십시오.