何时使用
等功能参考void (&fr)() = foo;
fr();
而不是像
这样的函数指针void (*fp)() = &foo;
fp();
函数指针是否可以执行,但函数引用可以吗?
答案 0 :(得分:4)
定义引用时:
void (&fr)() = foo;
fr();
它使您能够在可能使用fr
的任何地方使用foo
,这就是为什么:
fr();
(*fr)();
与直接使用foo
的方式完全相同:
foo();
(*foo)();
另一个区别是取消引用函数引用不会导致函数指针不需要解除引用的错误。