1. 程式人生 > >模擬實現C++標準庫中的auto_ptr

模擬實現C++標準庫中的auto_ptr

一、引言

C++標準庫中有一個auto_ptr可供我們參考。這是一個用來包裝原生指標(native pointer)的物件,聲名狼藉的記憶體漏洞(memory leak)問題可籍此獲得解決。根源在於物件例項化後變數離開作用域會自動被編譯器銷燬。

                                                             --------參考文獻   侯捷.STL原始碼剖析[M].武漢:華中科技大學出版社,2002.6:80-81.

警告:你必須小心在意,不要訪問已經被free函式釋放了的記憶體。這個警告看上去很顯然,但是這裡仍然存在一個很微妙的問題。假定你對一個指向動態分配的記憶體的指標進行了複製

,而且這個指標的幾份拷貝散佈於程式各處。你無法保證當你使用其中一個指標時它所指向的記憶體是不是已被另一個指標釋放。另一方面,你必須確保程式中所有使用這塊記憶體的地方在這塊記憶體被釋放之前停止對它的使用。

                                                    --------參考文獻   Kenneth A. Reek.C和指標[M].北京:人民郵電出版社,2008.4:225-226.

二、潛在問題的討論