linklist中的資料元素刪除
linklistlist;在main.cpp中新增下面的**:test t0(
0), t1(1), t2(2
);try
catch
(...)
程式直接掛了,原因是不允許在析構函式中丟擲異常。
在visual studio 2010中執行,列印結果是1 3。為什麼會出現3而不是2,這是由於linklist類中的remove函式導致的。
bool remove(int在之前的程式中,我們先去destroy,然後再m_length--。當在析構函式中丟擲異常時,將不會再執行m_length--。因此需要調換一下m_length--和destroy(todel)的順序。i)
return
ret;
}
在clear函式中,也存在同樣的問題。
void本篇文章主要是想說明,當在析構函式中丟擲異常時(這是不合法的,但不排除有人就這麼做),以前先的程式會導致單鏈表的狀態發生混亂。為了增加程式的健壯性,調整m_length和destroy的順序。clear()
//m_length = 0;
}
C語言中的典型問題(2)
1.運算子優先順序 在乙個表示式中可能包含多個有不同運算子連線起來的 具有不同資料型別的資料物件 由於表示式有多種運算,不同的運算順序可能得出不同結果甚至出現錯誤運算錯誤,因為當表示式中含多種運算時,必須按一定順序進行結合,才能保證運算的合理性和結果的正確性 唯一性。優先順序從上到下依次遞減,最上面...
TCP FIN WAIT 2狀態問題分析
tcp fin wait 2狀態問題分析 1 出現fin wait 2一般為客戶端,如果為服務端出現,則表明是服務端主動發起的斷開。c documents and settings administrator netstat an findstr 10.208.8.2 tcp 10.88.2.26 ...
Axis2常見問題分析
1 在呼叫第三方的web service過程中 雙方都是axis2 發現如下問題 當資料量大時,第三方返回的contenttype 在http頭內 是xml 當資料量小時,第三方返回的contenttype 在http頭內 是text 這導致預設情況下,axis2 1.4生成的客戶端在處理資料量小時...