社区
Delphi
帖子详情
函数指针问题
kgliu
2003-12-12 10:52:19
问题未解决,重发一遍,望各位不吝赐教
有一系列函数:fa,fb,fc.....fn.
假设param从a,b,c....n中取值,任意给定一个param值,怎样找到它对应的函数fparam?不用循环。
面向对象的多态性好象说明了这个问题,是不是我也不确定,很久没与这方面打过交道了。
请大家指教指教。
...全文
26
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`等,经常与指针结合使用...
腾讯2012笔试题目
问题
在于这些指针是否相等或相关联。 - **选项分析:** - A: 指针`pA`、`pB`、`pC`指向的是同一个对象,因此它们的值是相同的,但是它们的类型不同。 - B: 这个选项表述不准确,`pC`并不等于`pA`加上`pB`。 - C:...
C语言精彩编程100例
本教程涵盖了C语言的各个方面,包括基本语法、数据类型、控制结构、函数、数组、指针、结构体、文件操作等核心主题。 首先,C语言的基础知识是学习的关键。C语言是一种强大的、低级的编程语言,它的语法简洁而直接...
Delphi
5,930
社区成员
262,936
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章