函数返回函数指针,如何定义不使用typedef的等价形式
函数返回函数指针,如何定义不使用typedef的等价形式?
下面的f2()函数不能编译
#include <iostream>
using namespace std;
typedef int (*PF)(int,int);
int add(int a,int b);
PF f1();
int main(int argc,char* argv[])
{
int a=10,b=20;
cout<<f1()(a,b)<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
int add(int a,int b)
{
return a+b;
}
PF f1() //typedef int (*PF)(int,int);
{
return add;
}
int (*f2)(int,int)() //不使用typedef,如何让函数f2()和f1()等价?
{
return add;
}
[解决办法]
#include <iostream>
using namespace std;
typedef int (*PF)(int,int);
int add(int a,int b);
PF f1();
int add(int a,int b)
{
return a+b;
}
PF f1() //typedef int (*PF)(int,int);
{
return add;
}
int (*f2())(int,int) //不使用typedef,如何让函数f2()和f1()等价?
{
return add;
}
int main(int argc,char* argv[])
{
int a=10,b=20;
cout<<f1()(a,b)<<endl;
cout<<f2()(a,b)<<endl;
}