gpt4 book ai didi

c++ - 你能在函数中使用引用运算符吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:17:29 26 4
gpt4 key购买 nike

所以我最近开始学习 C++ 中的引用 (&) 和取消引用 (*) 运算符,我有一个问题。

那么,假设我有一个假设函数:

int fooBar(int foo, int bar)
{
return foo+bar;
}

我能否像使用引用运算符 (&) 的常规变量一样调用该函数?

像这样:

int normalFunction(int &referencedFunction())
{
return referencedFunction(someVariable);
}

最佳答案

是的。并且它们在使用时具有与函数指针相同的语义。

您可以像这样传递一个函数引用:

int foo_bar(int x, int y){return x + y;}

int pass_func(int(&f)(int, int)){
return f(some_var, some_other_var);
}

但在 C++ 中,更好的方法是使用模板参数:

template<typename Functor>
int pass_func(Functor &&f){
return f(some_var, some_other_var);
}

然后您可以传递函数指针/引用以及函数对象,例如std::function 和lambda 表达式。 (或任何定义了 int operator()(int, int) 的东西)

关于c++ - 你能在函数中使用引用运算符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31396331/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com