IDL物件程式設計手記

2021-09-30 02:34:13 字數 855 閱讀 8046

idl支援物件導向的程式設計, 但是並不完整, 不支援對成員的可見性的設定.

可以通過定義單獨檔案的方式來定義idl類, 比較容易管理, 定義的方式是:

pro __define

struct =

end檔名是:__define.pro

在這個檔案中, 還可以新增類成員函式的定義, 如:

pro ::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程式設計 利用shp檔案批量裁剪

主要是在 原始碼的基礎上增加了 envi file mng,id fid,remove 釋放記憶體的部分。image dir為影像路徑 vector dir向量路徑 outfile dir裁剪後結果路徑 pro bach subset viashp,image dir,vector dir,outf...

《linux c程式設計指南》學習手記3

6.3.1 多個程序之間的關係 程序組 getpgrp void 用來返回程序組號 setpgid用來建立乙個新的程序組或將乙個程序加入另乙個已存在的程序組 6.3.2 時間片分配 排程策略和引數 預設 時間片分配 先進先出 輪換規則 優先順序設定 nice 改變程序的動態優先順序 setprior...

《linux c程式設計指南》學習手記1

第一章 c語言基礎 linux概述 虛擬檔案系統vfs 程序通訊機制 管道,訊號 訊息佇列 訊號燈 共享記憶體 第二章 vim與emacs vi 的含義 visual 視覺化。vim vi improve 第三章 gcc編譯器 檢查是否安裝了gcc rpm a gcc 如果沒有安裝 切換到root ...