今天重新看了《effective c++》條款7指出上面的if (null == pintarray)判斷在記憶體申請不成功的情況下,93年以後的編譯器是不會執行一句的,換句話說就是93年前的編譯器要求在記憶體分配失敗時operator new要返回0,而以後的編譯器在記憶體分配失敗時丟擲std::bad_alloc異常而不是返回0。不過c++標準委員會為了使以前的**能夠正確執行,提供了乙個不丟擲異常的形式,這些形式被稱為「無丟擲」,因為他們沒用過乙個throw,而是在使用new的入口點採用了nothrow物件。所以在93年後的編譯器上申請記憶體時使用如下兩種形式:
形式一:
形式二:
關於如何為記憶體不足的情況作準備請參考《effective c++》中條款7的說明
佇列的重新認識
今天又回顧了原來佇列那節,自己重新把 敲了一遍,但是還是犯了一些小小的錯誤,但是還是收穫了,對佇列有了近一步的認識。在此幾下僅僅為了更好的理解。錯誤分析 這個錯誤真的是犯得太幼稚了,而且還犯了兩次。在需要用到迴圈語句的地方,我這樣用 然後我列印了輸出佇列的長度 結果是 後來自己就把 重新檢驗了一遍發...
重構的重新認識
序言中,熊傑對重構的思考 認為存在的問題 1.認為掌握思想就夠了,不重重構手法 2.大刀闊斧的修改,甚者重建整個專案 重新認識 1.不要大刀闊斧 重構的基本定義 重構是在不改變軟體可觀察行為的前提下改善其內部結構。依靠的是那些已經被證明是行為保持的重構手法 整理出可測試的介面,給它新增測試,以此為重...
重新認識js中的instanceof
目錄不少人應該都知道instanceof運算子的作用是檢測物件a是否是物件b的例項,即 a instanceof b但你們知道instanceof是依照什麼來判斷的嗎?答案是 原型鏈如果a物件能夠通過原型鏈到達b物件,instanceof就會返回true,否則返回false function per...