读书人

函数返回函数指针怎么定义不使用typ

发布时间: 2013-06-25 23:45:42 作者: rapoo

函数返回函数指针,如何定义不使用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;
}

读书人网 >C++

热点推荐