我一直在阅读函数指针,并将它们用作其他函数的参数。我的问题是如何通过引用传递函数而不使用指针?我一直试图在互联网上找到答案,但我没有找到一个好的答案。我知道你可以像这样通过引用传递变量:void funct(int& anInt);
。你会如何做类似于此的事情,而不是对变量的引用,而是对参数的引用?另外你将如何使用函数体中的函数引用?C++:如何将参考函数传递给另一个函数?
回答
#include <iostream>
using namespace std;
void doCall(void (&f)(int))
{
f(42);
}
void foo(int x)
{
cout << "The answer might be " << x << "." << endl;
}
int main()
{
doCall(foo);
}
干杯&心连心,
出于好奇,我为什么要使用对函数的引用而不是指向函数的指针? – fredoverflow
@FredOverflow:由于指针可能为空或无效。一个引用保证它是有效的而不是空的(没有空引用),否则在程序中有错误。 –
@Alf P. Steinbach:“或者说程序中有错误”理论上听起来不错,但如果你有'sometype&ref = * ptr'之类的东西,'指针中的地址将被简单地复制到地址中在引用中,可能是无效的或为空。您可能会说,当'ptr'无效或为空时,上面的语句是未定义的行为,但在编译或运行时不会有任何迹象表明,所以程序员仍然需要确保它有效且非空,与使用指针相同。所以我说程序员没有任何区别。 – newacct
- 1. 如何将void函数(void)作为参数传递给另一个函数c
- 2. 将函数的所有参数传递给另一个函数
- 3. 将函数的参数直接传递给另一个函数
- 4. C++将函数参数传递给另一个lambda
- 5. 传递函数的参数作为参数传递给另一个函数
- 6. 如何将函数输出传递给另一个函数
- 7. 将参数传递给函数,该参数必须作为参数传递给python中的另一个函数
- 8. 将多态函数作为参数传递给另一个函数C
- 9. 如何将命名参数传递给另一个函数需要的函数?
- 10. 如何将函数作为参数传递给另一个函数?
- 11. 将函数作为另一个函数的参数传递给嵌套函数
- 12. 传递函数的所有参数给另一个函数
- 13. 如何将数组从一个函数传递到另一个函数作为云函数的参考
- 14. 如何将一个函数传递给第一个函数参数中的另一个函数?
- 15. 如何将参数传递给函数
- 16. 如何将参数传递给函数?
- 17. 将一个函数的值传递给另一个函数
- 18. Swift - 将相同的参数从一个函数传递给另一个函数
- 19. 将一个函数的所有参数传递给另一个函数?
- 20. 如何将一个空参数传递给一个python函数?
- 21. 如何将参数传递给作为参考传递的函数?
- 22. 如何将一个变量从一个函数传递给另一个函数?
- 23. 如何将一个变量从一个函数传递给另一个函数?
- 24. 如何将数组传递给函数模板以供参考
- 25. 将函数传递给另一个函数,并将其称为
- 26. 将一组函数作为参数传递给Python中的另一个函数
- 27. 将Drender参数传递给另一个函数
- 28. 将调用参数传递给Makefile中的另一个函数
- 29. 将参数传递给另一个脚本中的函数?
- 30. 斯卡拉传递函数作为参数传递给另一个函数
注意:您不能传递功能。您只能传递引用或指向函数的指针。 –