2011-04-23 64 views

回答

0

foo(someType& o)表示傳遞對象的引用而不是對象的副本。你的情況給Event指針引用傳遞。基本上,這意味着該函數內的變化將修改變量傳遞可見的函數的調用者。例如。

void get(Event* e) 
{ 
    e = null; 
} 

void get2(Event*& e) 
{ 
    e = null; 
} 

如果你給他們打電話:

Event *e = new Event(); 
get(e); 
// e has not changed 
get2(e); 
// e is null now 
0

get(Event*& pEvent)意味着指針pEvent正在參考好評。所以現在指針本身在函數內部是可修改的。

p = &obj; // p points to obj 
get(p); // p = pEvent is modified to 0 
// now outside p points to '0' 

它是getEvent(Event* pEvent),那麼你不能修改指針本身。所以,無論你分配給pEventget(),外面不會被修改。