Omk*_*ant 9 c++ function-pointers reference
可能重复:
函数引用
我在一本书中找到了这个代码,
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;
}
Run Code Online (Sandbox Code Playgroud)
当我打印的类型foo
和fp
它给了这样的事情:
FiiiE
PFiiiE
什么是E
最后的.为什么foo
是F
同时fp
是PF
?