Delphi2010新發現 類的構造和析構函式功能

2021-05-04 06:39:31 字數 1409 閱讀 7145

delphi2010發布了.

雖然憑著對delphi的熱愛第一時間就安裝了,但是現在可能是年紀大了,對新事物缺乏興趣了.一直都沒有仔細研究.

今天有點時間試了一下新功能.

本來c#和delphi.net是支援類的建構函式/析構函式的(注意不是例項的構造和析構).也就是在模組初始化/解除安裝的時候會呼叫.

這樣有很多好處,比如說類的靜態變數的初始化什麼的都可以在這裡做.

delphi for win32對這方面的需求還不是很大.

第乙個原因.歷史上舊版delphi不支援靜態變數.只能用unit的全域性變數+類函式來模擬.所以類的構造析構基本沒需求.從delphhi2005還是2006開始才支援class var的.記得不太清楚了

第二個原因.delphi的unit有初始化節和反初始化節(initialization/finalization).很多初始化工作都可以在這裡面做.比如說類的靜態變數.所以對類的建構函式需求不是很大.

隨手試了一下delphi2010.驚喜的發現不知道什麼時候delphi2010已經開始支援類的構造和析構函式了.易博龍和codegear居然在介紹delphi2010的新變化的同時都沒有介紹這個特徵.

貼一段**:

type

ttest = class

private

class var staticabc : integer;  //類變數(類似c++的靜態變數.但不完全等同)

va***bc : integer; //普通成員變數

public

class constructor create();//類的建構函式

class destructor destroy; //類的析構函式

constructor create();   //例項的建構函式

destructor destroy; override; //例項的析構函式

end;

class constructor ttest.create;

begin

staticabc := 1234;

end;

class destructor ttest.destroy;

begin

end;

constructor ttest.create;

begin

fabc := staticabc;

end;

destructor ttest.destroy;

begin

inherited destroy;

end;

呵呵.很有意思.雖然以前用unit的initialization/finalization可以實現.但是如果有了類的構造和析構語法的話**的可讀性會更好.

同時還發現結構體(record)也可以用一樣的語法.可編譯通過,但是實際上卻沒有效果.估計以後會加上這個功能吧

WORD中的新發現

ctrl alt s 可以 變成雙開哦 這樣在編輯文件時很方便,也是乙個簡單的發現,相信這不是什麼新東西,只想拿出來說說,下面是我查過資料後,更加豐富的快捷鍵 alt ctrl s 拆分文件視窗 alt shift c 撤消拆分文件視窗 home 移動到內容的開始 end 移動到內容的最後 左箭頭鍵...

csdn blog 的一些新發現

一 收藏的功能 大概得瀏覽一些csdn首頁上的熱點blog 發現很多的人都沒有使用收藏這個功能,那麼它究竟是怎麼用的呢?當我們的blog寫得越來越多 當讀者想要從眾多的日誌中找到他某年某月某日曾看到一篇有點用的文章 如果blog沒有收藏,也許他要找很久 收藏,就是為了解決這樣的問題而提出的 就像ie...

switch 與if 語句的區別新發現

之前在做專案的時候遇到乙個崩潰的原因。初始的時候崩潰的原因顯示為vector中的值為空,而且會出現亂碼。舉個例子 enum int a,int b,vectora if a.a 1 a.b 2 可能在a的賦值 現亂碼,得到的值會超過int型的所能表示的數值,改為double型也不行。這樣出現亂碼之後...