2014-03-14 53 views
9

何時使用函數引用如什麼時候在C++中使用函數引用而不是函數指針?

void (&fr)() = foo; 
fr(); 

而不是函數指針如

void (*fp)() = &foo; 
fp(); 

有什麼函數指針不能做,但功能可參考?

+0

另外,對於非函數指針和引用可以說什麼也可以應用於函數指針和引用。雖然可能有一些例外。 –

+0

@MarkGarcia感謝您的鏈接。我會盡力從那裏找到合理的答案。 – songyuanyao

回答

1

當你定義一個參考:

void (&fr)() = foo; 
fr(); 

它可以讓你幾乎無處不FR用用富的能力,它是可能的,這就是爲什麼:

fr(); 
(*fr)(); 

作品與直接使用foo的方式完全相同:

foo(); 
(*foo)(); 

One more差異是解引用函數引用不會導致錯誤,其中函數指針不需要解引用。

相關問題