C++編碼規(guī)范之智能指針 1.智能指針(smart pointer) 如果確實需要使用智能指針的話,scoped_ptr完全可以勝任。在非常特殊的情況下,例如對STL容器中對象,你應該只使用std::tr1::shared_ptr,任何情況下都不要使用auto_ptr. 智能指針看上去是指針,其實是附加了語義的對象。以scoped_ptr為例,scoped_ptr被銷毀時,刪除除了它所指向的對象。shared_ptr也是如此而且shared_ptr實現(xiàn)了引用計數(shù)從而只有當它所指向的最后一個對象被銷毀時,指針才會被刪除。 一般來說我們傾向于設計對象隸屬明確的代碼,最明確的對象隸屬是根本不使用指針,直接將對象作為一個域或局部變量使用.另一種極端是引用計數(shù)不屬于任何對象,這樣設計的問題是容易導致循環(huán)引用或其他導致對象無法刪除的詭異條件,而且在每一次拷貝或賦值時原子操作都會很慢。 |
|
來自: dongtongtong > 《C 編碼規(guī)范》