精華區beta C_and_CPP 關於我們 聯絡資訊
※ 引述《aecho (星空下的鮪魚)》之銘言: : ※ 引述《Uihc ()》之銘言: : ※ 引述《aecho (星空下的鮪魚)》之銘言: : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ : 就是不懂這裡的參數想傳達的意思=.= : 整理了一下,其實這篇文章講的很仔細吧。同樣是void funcA(void), : 用了auto_ptr可以避免很多memory的問題。而在使用上,卻跟MyClass *ptr = : new MyClass是一樣的。所以上面那段跟 : void Swap(Graphics::TBitmap& new_bitmap) 應該近似,只不過上面的new_bitmap : 是Class auto_ptr的。在memory的控管上有多一層保護吧。 使用 auto_ptr 有很多要小心的事項。 它的 assign 和一般的 assign 意思不一樣。若是在 class 中 使用了 auto_ptr 做為 data member, 那這個 class 的 copy ctor, copy assignment operator 都不能用自動產生的版本,不然會 很危險。 除了不支援 array 的使用,它也不能放到 standard container class 中。像是 vector<auto_ptr<int> >; // 會有嚴重後果! Boost library 提供了一些更聰明好用的 smart pointer, 但尚未 成為標準就是。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.130.208.168
khoguan:vector<shared_ptr<int> > 就沒問題了,boost提供220.130.208.168 06/03
aecho:boost的是要自己去抓嗎? 還是...是一種標準? 218.166.91.181 06/04
khoguan:就去 www.boost.org dl/build/install220.130.208.168 06/04
aecho:是不是有打錯,我連不進去 @@ 218.166.94.69 06/04
khoguan:www.boost.org 啦 ^_^220.130.208.168 06/04
khoguan:後面的英文是指下載建置安裝,不是網址的一部份220.130.208.168 06/04