可能重复:
Function References
我在一本书中找到了这段代码,
typedef int (&foo)(int,int);
这是什么意思?这是对函数的引用吗?如果是,为什么用它? 它与指向这样的函数的指针有何不同。
typedef int (*foo)(int,int);
这只是C ++中的增强,而不是C?
编辑:
#include <iostream>
#include <typeinfo>
using namespace std;
int f (int , int ) {return 0;}
int main() {
int (&foo)(int,int) = f;
int (*fp)(int,int) = f;
std::cout<<typeid(foo).name()<<std::endl<<typeid(fp).name();
return 0;
}
当我打印foo
和fp
的类型时,它会提供如下内容:
FiiiE
PFiiiE
最后一个是E
。以及foo
F
fp
为PF
的原因{{1}}