2016-03-07 80 views
-4

所以,我有一個名爲Vuelo的班級,它有一種方法可以將乘客添加到飛機班機上,我必須檢查乘客識別碼不存在數組中(該數組是先用全零),我還必須檢查是否有足夠的空間用於添加其他乘客(最多10個)班級內部的布爾方法''控制可能會達到結束o非空功能''

bool Vuelo :: agregarPasajero(int id) 
{ 
    int i = 0; 

for(int iC = 0; iC < 10; iC++) 
{ 
    if (listaPasajeros[iC] == id) 
    { 
     i++; 
     return false; 
    } 
} 

if(i == 0) 
{ 
    if(cantidadPasajeros >= 10) 
    { 
     return false; 
    } 
    else 
    { 
     return true; 
     cantidadPasajeros++; 
    } 
    } 
} 
+0

你的問題是什麼?它是「這個警告意味着什麼?」?它意味着它的文本所說的。 –

回答

3

如果我不是零,你會在沒有任何返回語句的情況下到達函數的結尾。既然你宣佈函數總是返回一個bool,你應該爲這種情況提供一個函數。

現在,你可能知道我在那個地方永遠不會是零,但是這個邏輯相當複雜(我在第一次閱讀時錯過了它),並且編譯器不能期望意識到事實上存在控制流程沒有機會在函數結束時不會遇到返回。在這種情況下,最好添加一個虛擬返回。

如果您刪除僞造的i == 0測試,那麼您可能無法獲得虛擬回報。我在這一點上必定總是爲零,因爲如果它增加了,函數立即返回錯誤。

聲明cantidadPasajeros++;將永遠不會執行,因爲它位於return語句之後。任何中途體面的編譯器也會對此提出警告。

+0

和一些不合體的編譯器。 – user4581301

+0

@Barmar - 正好。變量i沒有任何用途;如果所有對它的引用都被刪除,代碼就可以正常工作。 –

+0

啊,沒有看到你的第三段,你提出了相同的觀點。 – Barmar

相關問題