作者allstarschh (allstars)
看板C_and_CPP
標題[問題] 請問pointer to reference有什麼好處呢?
時間Fri Mar 27 18:03:50 2009
我在看WebKit的code時
發現某段code有用reference to pointer
bool JSGlobalData::sharedInstanceExists()
{
return sharedInstanceInternal();
}
JSGlobalData& JSGlobalData::sharedInstance()
{
JSGlobalData*& instance = sharedInstanceInternal();
if (!instance) {
instance = new JSGlobalData(true);
}
return *instance;
}
JSGlobalData*& JSGlobalData::sharedInstanceInternal()
{
ASSERT(JSLock::currentThreadIsHoldingLock());
static JSGlobalData* sharedInstance;
return sharedInstance;
}
請問在中間那個function sharedInstance
為什麼不把code搬到 sharedInstanceInternal就好了
這樣就不用用到 reference to pointer了
因為用reference to pointer的話
有一邊free/delete 的話 另一個reference是不是就會有dangling refernece了
所以想來請教reference to pointer的好處 thanks
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.67.242.96
1F:推 QQ29:我想這就是singleton寫法的習慣吧 你只需要透過某函數 03/27 18:46
2F:→ QQ29:就可以取得 這class裡面唯一的資源~ 03/27 18:47
3F:→ jaw109:sharedInstanceInternal() 會吐出一個pointer, 你要怎麼讓 03/27 19:07
4F:→ ilway25:被標題誤導了... 03/27 19:59
5F:→ allstarschh:sorry 我把標題打錯了 修正一下 03/27 22:49
6F:→ admon:class作者把指標藏到函式裡 確保使用指標前必做安全檢查 03/28 00:26
7F:→ admon:藏進去的話 回傳就只能是reference to pointer 03/28 00:27