![]() |
1
30
首先,函子可以包含内部状态;对以下情况有效的状态
这个调用
仅用于函数对象。你可以添加
其次,编译器可以内联调用functor;它不能对函数指针执行相同的操作。这就是为什么C++
|
![]() |
2
1
functor甚至可以在一定程度上模拟lambda表达式(如果必须使用C++11/C++14之前的旧编译器),因为它们可以有单独的状态(例如作为成员变量)。
或作为lambda
函数指针只能获取参数,但是无状态的,除非它们访问任何全局变量(这是非常糟糕的设计和危险的)。
|
![]() |
Joseph Hales · C#通用对象函数指针,相同地址? 7 年前 |
![]() |
Trytio · 同时处理非成员函数指针和成员函数指针 7 年前 |
![]() |
Ashutosh Tiwari · 无法理解c中的函数指针++ 7 年前 |
![]() |
cxandru · 有没有比传递参数更好的方法来确定方法的行为? 7 年前 |
![]() |
Aryan · 将引用(右值)移动到函数 7 年前 |
![]() |
moha · 将地址存储到函数指针中 7 年前 |