2011年12月13日 星期二

[C++] RefPtr and PassRefPtr Basics

Link: http://www.webkit.org/coding/RefPtr.html

C++ 裡面已經有 smart pointer 的設計,為什麼 WebKit Open Source Project 還要自己寫一個 RefPtr? 答案可從 PassRefPtr 看出端倪,會如此設計,主要是解決下面常見的問題:
For example, for a function that took a smart pointer as a parameter and returned that same smart pointer as a return value, just passing the parameter and returning the value would increment and then decrement the reference count two to four times as the object moved from one smart pointer to another.
細節請看文章,使用方法一定要參考文末 guildline,因為很容易踩到 reference count = 0 的地雷。

沒有留言:

張貼留言