游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2394|回复: 4

高手帮忙 解答--关于自定义function

[复制链接]

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2010-2-10 11:15:00 | 显示全部楼层 |阅读模式
请问 tpyedef 一个 function之后 ,这个function需要定义,如何使用,

:

typedef int (*funct) (void *, void *);
//funct 前面的* 代表什么意思, 去掉它和保留它有什么区别

void main(){

funct afunct; //declaration
//afunct需要 用 new 来创建吗,怎么使用afunct, 感觉funct 都没有定义内容, 不太懂,请高手解答
//

}

0

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2010-2-10 13:05:00 | 显示全部楼层

Re: 高手帮忙 解答--关于自定义function

int inc(int a)
{
return(++a);
}
int multi(int*a,int*b,int*c)
{
return(*c=*a**b);
}
typedef int(FUNC1)(int );
typedef int(FUNC2) (int*,int*,int*);
void show(FUNC2 fun,int arg1, int*arg2){
int(*p)(int) =&inc;
int temp =p(arg1);
fun(&temp,&arg1, arg2);
printf("%d\n",*arg2);
}
main()
{
int a;
show(multi,10,&a);
return 0;
}

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2010-2-10 13:55:00 | 显示全部楼层

Re:高手帮忙 解答--关于自定义function

上面有2中用法, 大概能看的懂,多谢了。不过不知道什么时候 需要这么用,
呵呵, 这C++的提供这么多东西,感觉好乱。

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2010-2-11 01:29:00 | 显示全部楼层

Re:高手帮忙 解答--关于自定义function

建议用lamda表达式,vs2010支持

#include <functional>

typedef int (*funct) (void *, void *);
//funct 前面的* 代表什么意思, 去掉它和保留它有什么区别
==>
typedef std::tr1::function<int (void *, void *)> funct;


void main(){

funct afunct = [](void *x1, void *x2) { return ... ...; };

}

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2010-2-11 15:09:00 | 显示全部楼层

Re: Re:高手帮忙 解答--关于自定义function

instemast: Re:高手帮忙 解答--关于自定义function

建议用lamda表达式,vs2010支持

#include <functional>

typedef int (*funct) (void *, void *...



lamda表达式 是什么,我还没听过,
---为什么我觉得其实 c++基本的东西就足够 实现大部分功能了, 为啥还要有这么多 复杂的 东西?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-14 12:26

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表