函数指针函子吗?是否有一个虚拟仿函数可以帮助兄弟仿函数静静地编译?函数指针和函子
函数指针和函子
回答
至少与术语在C常使用++(警告:它的使用完全不同相对于其它语言如Haskell中),一个仿函数是一个类(或类的一个实例),该过载operator()
所以它可以像一个函数一样被调用。
因为它们使用相同的语法,所以可以写一个模板来接受函数指针或函数互换实例。然而,并非所有的算法都会这样做 - 有些人预计(例如)您为argument_type
和result_type
之类的东西提供了typedef
。标准库提供了几个类(unary_function
和binary_function
)作为你的函子的基类来提供这些类。如果你愿意,你可以自己提供 - 这些基类纯粹是为了方便(有些人不觉得它们特别方便)。
+1,但补充说一个函数指针不是*实际*函子,尽管它可以用于需要其中的模板。 – Wyzard
我一直听到和定义过,functor是可以调用的任何东西,无论是函数对象还是实际函数。而你所称的函子是一个函数对象。 –
非常感谢,我无法赞成,但已将您的答复标记为已接受的答案,这非常有用。 –
函数指针是实函数的地址。一个函子是一个类,operator()
已经超载;这些类的实例可以作为函数传递并使用相同的语法进行调用。所以不,函数指针不是函子。
我不知道“virtual functors”或“sibling functors”是什么,所以我无法回答你的第二个问题。
谢谢你的解释 –
- 1. 函数和指针
- 2. c函数指针反函数指针
- 3. 状态机,子类和函数指针
- 4. 函数指针指向一个函数指针的函数
- 5. C++ 11/lambda函数和函数指针
- 6. C++函数指针和回调函数
- 7. 函数指针和正常函数
- 8. 函数和函数指针在C++
- 9. 函数指针和虚函数
- 10. 函数获取函数指针和类指针?
- 11. C++接受成员函数指针和外部函数指针
- 12. 指针?指针函数?
- 13. 函数指针/函数表
- 14. 函数指针
- 15. 函数指针
- 16. 函数指针
- 17. 函数指针
- 18. 函数指针?
- 19. 函数指针
- 20. 函数指针
- 21. 函数指针
- 22. 函数指针
- 23. 函数指针
- 24. 函数指针
- 25. 指针,链表和函数
- 26. 函数指针和继承
- 27. 文件指针和函数
- 28. 代表和函数指针
- 29. 处理函数和指针
- 30. javascript函数指针和“this”
什么是兄弟函子? –
或虚拟函子 –
C++ 11引入了“可调用类型”的概念,这意味着(松散地)某些像'INVOKE(yourthing,a,b,c)'这样的结构扩展为'yourthing(a, b,c)',必须有意义;它包含函数指针和函数,可能是一般思考的好方法。 –