可能重复:
函数引用
我在一本书中找到了这段代码,
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
whilefp
是PF
?