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

When to use function reference instead of function pointer in C++?

本文关键字:函数 指针 引用 何时使 c++      更新时间:2023-10-16

何时使用函数引用,如

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

代替函数指针,如

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

是否有一些函数指针不能做,但函数引用可以?

定义引用时:

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

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

fr();
(*fr)();

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

foo();
(*foo)();

还有一个区别是,当函数指针不需要解引用时,解引用函数不会导致错误。