IDL编写程序!!!急求

IDL编写程序!!!急求,第1张

IDL支持面向对象的编程, 但是并不完整, 不支持对成员的可见性的设定.

可以通过定义单独文件的方式来定义IDL类, 比较容易管理, 定义的方式是:

pro <ClassName>__define

struct = {<className>, ...}

end

文件名是:<ClassName>__define.pro

在这个文件中, 还可以添加类成员函数的定义, 如:

pro <className>::hello

...

end

IDL不区分大小写, 所以类名/函数名/关键字等均可以不受大小写的限制

IDL对类提供一些专门的成员函数, 完成专用的任务. 比如: INIT为构造函数, CLEANUP为析构函数(在对象被释放时调用, 比如OBJ_DESTROY函数). 但是这些函数不能在外部被调用, 但是可以在函数内部看到, 主要是为了手工调用, 以实现父类的初始化函数被调用(IDL不会自动调用父类的INIT函数)

INIT函数可以带参数, 可以在调用OBJ_NEW生成对象时传入.

OBJ_NEW函数的调用形式如下:

Result = OBJ_NEW( [ObjectClassName [, Arg1......Argn]] )

IDL的函数和过程参数可以不完整, 比如函数A定义了5个参数, 可以用0-5个参数来调用. 对调用的参数情况可以用N_PARAMS和N_ELEMENTS来判断, 前者可以得到实际的调用参数的个数, 后者可以判断某个参数是否有值

sub Test::INIT, caption

print, N_PARAMS() 返回参与调用的参数个数

print, N_ELEMENTS(caption) 返回1为有值, 返回2为未定义

...

end

可以定义多个同名函数, 但只有最晚定义的那个有效, 前面的会被隐藏

如何学好IDL编程:

一是吃透变量、读写文件等,它们是你拿来跟遥感数据打交道的东西;

二是写清程序结构,自己做做缩进,代码块之间用空行分开,写注释等等,不一而足;

三是掌握好function和procedure中关键字的用法。IDL不像C++或者.NET等等,有按值传参和按引用传参之分,IDL解决此类问题的方法是关键字。

四是吃透数字图像处理那部分的基本算法,虽然大部分功能已经由IDL造好了轮子,但只有吃透了原理,用的时候才能信手拈来。

许多函数有源码提供,IDLDE(开发环境界面)里在函数或过程名上点右键,绿色名称的除了帮助之外一般都有查看源码的选项,可以学到不少东西

为了实现与其他语言的集成开发,IDL拥有以下几个技术: 1) 调用外部程序 IDL调用其他语言功能的最简单的方法就是调用外部程序,即使用SPAWN方式。SPAWN产生一个子进程来执行一个命令或一系列的命令,调用时可以根据需要添加一系列关键字。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12065216.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存