首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

函数返回函数指针,怎么定义不使用typedef的等价形式

2013-06-25 
函数返回函数指针,如何定义不使用typedef的等价形式函数返回函数指针,如何定义不使用typedef的等价形式?下

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

热点排行