何时在C ++中使用函数引用而不是函数指针?

时间:2014-03-14 05:23:06

标签: c++ function-pointers

何时使用

等功能参考
void (&fr)() = foo;
fr();

而不是像

这样的函数指针
void (*fp)() = &foo;
fp();

函数指针是否可以执行,但函数引用可以吗?

1 个答案:

答案 0 :(得分:4)

定义引用时:

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

它使您能够在可能使用fr的任何地方使用foo,这就是为什么:

fr();
(*fr)();

与直接使用foo的方式完全相同:

foo();
(*foo)();

另一个区别是取消引用函数引用不会导致函数指针不需要解除引用的错误。