auto_ptr的替代方案是「引用計數型智慧型指標(rcsp)」,所謂rcsp也是智慧型指標,持續追蹤共有多少物件指向某筆資源,並在無人指向它時自動刪除該資源。
rcsp無法開啟環狀引用(如兩個其實已經沒被使用的物件彼此互指,因而好像還處在「被使用」狀態)。
tr1::shared_ptrpinv(createinvestment());//呼叫factory函式
//使用pinv一如以往。
//經由shared_ptr析構函式自動刪除pinv。
void f()
std::tr1::shared_ptrpinv1(createinvestment()); //pinv1指向createinvestment返回物。
pinv2(pinv1);//pinv1和pinv2指向同乙個物件
pinv1=pinv2;//同上,無任何改變
auto_ptr和tr1::shared_ptr兩者都在其析構函式內做delete而不是delete動作,意味著在動態分配而得的array身上使用auto_ptr或者tr1::shared_ptr是個餿主意。
effectiveC 讀書筆記(九)
9.雜項討論 miscellany 1.嚴肅對待編譯器發出的警告訊息。努力在你的編譯器的最高 最嚴苛 警告級別下爭取 無任何警告 的榮譽 2.不要過度倚賴編譯器的報警能力,因為不同的編譯器對待事情的態度並不相同。一旦移值到另乙個編譯器上,你原本倚賴的警告資訊有可能消失 1.c 標準程式庫主要機能由 ...
Effective C 學習筆記
學習effective c 已經有相當長的一段時間了,今天抽出時間又堵了一遍第一部分 c語言 c 以c語言為基礎,幾乎支援所有的c語言成分,例如區塊 語句 預處理 內建資料型別 陣列 指標等,c語言的侷限是 沒有模板 沒有異常 沒有過載 物件導向的c 也就是加上了物件特性的c,類 封裝 繼承 多型 ...
Effective C 學習筆記
1 c 是乙個複合式的語言 c 中不同部分有著不同的語言特性,例如 1.1 在c中傳遞形參時,按照值傳遞比按照指標傳遞效率更高 1.2 在物件導向程式中,物件要按照const引用而不是按照值傳遞 1.3 在stl程式設計中採取按照值傳遞方式 所以說c 中沒有統一的準則,要按照不同的特性採取不同的使用...