2014-10-01 57 views

回答

1

這種轉換算子

operator ObjectType *() const 
     { return m_Pointer; } 

允許隱式轉換爲指針類型,這又可以被轉化爲bool

雖然它的工作原理,這被普遍認爲是一個壞主意:如果你不小心,你可能會意外地存儲在非智能指針,容易失效時,智能指針會破壞它的對象。由於這個原因,標準的智能指針代替explicit operator bool()允許在布爾上下文中使用,並且當你真的想要一個非智能指針時,可以使用明確的get()函數。

+0

非常感謝。我確實看到了隱式轉換爲原始指針的危險,但至少現在我知道了。 – 2014-10-01 09:15:25