社区
Delphi
帖子详情
函数指针问题
kgliu
2003-12-12 10:52:19
问题未解决,重发一遍,望各位不吝赐教
有一系列函数:fa,fb,fc.....fn.
假设param从a,b,c....n中取值,任意给定一个param值,怎样找到它对应的函数fparam?不用循环。
面向对象的多态性好象说明了这个问题,是不是我也不确定,很久没与这方面打过交道了。
请大家指教指教。
...全文
22
3
打赏
收藏
函数指针问题
问题未解决,重发一遍,望各位不吝赐教 有一系列函数:fa,fb,fc.....fn. 假设param从a,b,c....n中取值,任意给定一个param值,怎样找到它对应的函数fparam?不用循环。 面向对象的多态性好象说明了这个问题,是不是我也不确定,很久没与这方面打过交道了。 请大家指教指教。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kgliu
2003-12-15
打赏
举报
回复
谢谢二位的解答。
很土
2003-12-13
打赏
举报
回复
可以构造 Hash 函数, 建立 Hash Table, 若函数构造合理的话可以一次就找到目标, 所以解决方法的关键是如何互斥, 根据下标就可以计算出目标值.
lxpbuaa
2003-12-12
打赏
举报
回复
如果这一系列函数的参数是相同的,则可以,否则不能。比如:
type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TProc = procedure(X: Integer); //定义下列一些函数/过程的类型TProc
procedure fa(a: Integer); //一系列函数/过程
procedure fb(b: Integer);
var
Form1: TForm1;
implementation
var
Procs: Array of TProc; //一个数组存放这一些函数的指针
{$R *.dfm}
procedure fa(a: Integer);
begin
ShowMessage(IntToStr(a));
end;
procedure fb(b: Integer);
begin
ShowMessage(IntToStr(b));
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
//初始化指针数组
SetLength(Procs, 2);
Procs[0] := fa;
Procs[1] := fb;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
param: Integer;
begin
//通过param调用响应的函数/过程
param := 0;
Procs[param](param);
end;
end.
————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
让你不再害怕指针
此外,指针还可以指向函数,创建
函数指针
,实现函数回调或
函数指针
数组等高级特性。 7. const限定符与指针 const关键字可以用于指针,表示指针不可变(const int *ptr)或指针所指向的内容不可变(int *const ptr)...
C/C++ 指针的13份资料
7. **
函数指针
**:
函数指针
可以指向一个函数,使得可以作为参数传递或存储在数据结构中。例如,`void (*func_ptr)(int)`声明了一个接受整型参数并无返回值的
函数指针
。 8. **动态内存管理**:通过`malloc()`和`...
C/C++指针经典资料大全
- C++11引入了智能指针(如`unique_ptr`,`shared_ptr`,`weak_ptr`),自动管理内存,避免手动释放带来的
问题
。 8. **指针与STL** - 标准模板库(STL)中的容器如`vector`,`list`,`map`等,经常与指针结合使用...
免费下载:C语言难点分析整理.doc
这部分介绍了
函数指针
和数组指针的高级用法。 ### 38. 右左法则- 复杂指针解析 这部分探讨了复杂的指针声明,并提供了一种易于理解的解析方法。 ### 39. 回车和换行的区别 这部分解释了回车和换行在不同操作系统中...
函数指针
和指针函数
函数指针
和指针函数的区别 一、
函数指针
本质上是一个指针,它指向的是一个函数的地址。 1.如何定义一个
函数指针
: void(*p2)(int a,int b);
函数指针
是专用的。格式要求很强 返回值,参数类型,个数都必须相同。...
Delphi
5,927
社区成员
262,932
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章