c++ - 函数引用

标签 c++

所以我只是在使用函数指针,我记得你可以这样做:

void Foo()
{
}

int main()
{
    void(& func)() = Foo;

    func(); //::Foo();
}

在这种情况下,引用引用有效对象(除非它们被滥用)或函数的明显优势。

明显的缺点是您不能存储引用数组,也不能将它们用于成员函数指针(至少据我所知)。

我的问题:是否有人使用它们(即函数引用不是函数指针),如果是,在什么情况下有您发现它们有用/有帮助吗?

我能看到它们立即有用的唯一地方是在使用条件编译时绑定(bind)对特定函数的引用。

最佳答案

我之前使用过它们以类似于策略模式的方式将它们传递给构造函数来向类添加定制

关于c++ - 函数引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14079748/

相关文章:

c++ - 创建从一种类型到另一种类型的别名

c++ - 如何理解这个答案中 "q = i - 4; "的代码?

c++ - BOOST_MOVABLE_BUT_NOT_COPYABLE vs2010 构建错误

c++ - 将 v8 对象转换为自定义 C++ 对象

c++ - 退出 MATLAB 时我的 mex cuda 代码出现段错误(核心已转储)

c++ - linux下使用mingw交叉编译器声明 'parameters'中的两种或多种数据类型

c++ - 获取所有边 ID 的 vector

c++ - 有什么方法可以结合 std::istream_iterator 和 std::for_each_n() 吗?

c++ - 在编译时计算一个小整数的阶乘

c++ - 获取 4 位整数的倒数第二个值