锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
CREATE TABLE "GENE"
(
"DNA" CHAR(4) CHARACTER SET ASCII NOT NULL,
"SELF" INTEGER DEFAULT 0 NOT NULL,
"NONSELF" INTEGER DEFAULT 0 NOT NULL,
"USELF" INTEGER DEFAULT 0 NOT NULL,
"UNONSELF" INTEGER DEFAULT 0 NOT NULL,
"FLAG" BOOLEAN DEFAULT FALSE NOT NULL,
PRIMARY KEY ("DNA")
);鐩告瘮 Delphi 2006 鏉ヨ錛屾垜瑙夊緱榪欎釜鐗堟湰鐨?Delphi 2007 鏄釜瓚呭己鐨勪紭鍖栫増錛屽姛鑳芥柟闈紝鍙湁灝戜簺鏀瑰彉銆傝濂規槸浼樺寲鐗堬紝閭f槸鍥犱負濂圭殑鍚姩閫熷害錛岀紪璇戞晥鐜囷紝IDE 閫熷害鏄浉褰撶殑蹇紙PS錛氭垜鐨勭數鑴戞槸PM1.4G錛?12MB錛夈傛潕緇村厛鐢熸墍璇寸殑姣?Delphi 7 蹇竴鐐逛篃涓嶄負榪囥傛渶榪戠敤 VS2005錛屾墦寮涓涓?C++ 鎺у埗鍙扮▼搴忥紝瑕佺粡榪囩浉褰撻暱鐨勬椂闂達紝緙栬瘧灝辨洿涓嶇敤璇翠簡銆俉elcome Page 閲岀殑“Where developers matter”鐪熸槸璁╀漢鎰熷姩鍟娿?/p>
鑷充簬鍏跺畠鏂歸潰鐨勬敼榪涳紝瀵規垜鏉ヨ錛屽茍涓嶆槸寰堟湁鍚稿紩鍔涖侶elp 緋葷粺鏀圭敤 MSDN 鐨勯偅濂楁渶鏂扮殑 help錛屾敮鎸佷簡VISTA錛屽彲鏄垜鐨勭數鑴戞槸涓嶈兘璺戜簡銆傚 Together 鐨勯泦鎴愶紝榪欎釜寰堝疄鐢ㄣ傛帶浠跺浜嗗嚑涓侷ntraWeb 鍙樻垚浜?CodeGear 鐨?VCL 閮ㄥ垎浜嗭紝浣嗗嵈涓嶆敮鎸佽皟璇曪紝榪欑偣鏈変簺濂囨傛暟鎹簱鎺ュ彛緇熶竴浜嗐傜壒鍒殑涓鐐瑰氨鏄紝鍘熸潵 Borland 鐨勬爣璇嗭紝鐜板湪鍏ㄥ彉鎴愪簡 CodeGear銆?/p>
鍏跺疄錛屾垜騫朵笉浜嗚В澶氬皯寮鍙戯紝鏇翠笉鐭ラ亾寮鍙戣呭埌搴曢渶瑕?Delphi 2007 澧炲姞浜涗粈涔堝姛鑳姐傛垜涓績涓鐩磋涓?Delhpi 鍙戝睍鍒頒粖澶╋紝鍙樺寲鐨勫彲鑳藉凡緇忚秺鏉ヨ秺灝戙傚氨鍍?VC 涓鏍鳳紝寰堝皯鍙樺姩銆俉in32 RAD 鐨勫紑鍙戠帇鑰咃紝搴旇榪樻槸灞炰簬 Delphi錛圕++涓婄殑RAD宸ュ叿寰堝皯錛屽嵆渚挎湁錛屼篃鏄璇█榪涜浜嗕竴浜涙伓蹇冩墿灞曪級錛岄熷害錛屾晥鐜囷紝璋佽兘鐩告瘮銆傜幇鍦ㄥ敮涓鐨勫笇鏈涙槸 Delphi 2007 鐨勮璦鍐嶅姞寮轟竴浜涳紝濡?template銆傛渶榪戠敤 C++錛屼竴鐩村湪瀛︿範 template錛屾墍浠ヤ篃甯屾湜 Delphi 鑳借窡涓婃椂浠c?/p>
template聽<typename聽LeftExp,聽typename聽Op,聽typename聽RightExp>
struct聽Expression聽
{
聽聽聽聽const聽LeftExp聽&聽left;
聽聽聽聽const聽RightExp聽&聽right;
聽聽聽聽
聽聽聽聽Expression(const聽LeftExp聽&聽_l,聽const聽RightExp聽&聽_r)聽:聽left(_l),聽right(_r)
{}
聽聽聽聽
聽聽聽聽double聽operator聽[]聽(int聽index)聽const聽
{
聽聽聽聽聽聽聽聽return聽Op::eval(left[index],聽right[index]);
聽聽聽聽}
};

struct聽EPLUS聽
{
聽聽聽聽static聽double聽eval(double聽a,聽double聽b)聽
{聽return聽a+b;}
};
class聽Matrix聽

{
private:
聽聽聽聽int聽M,N;
聽聽聽聽double聽*聽element;
public:
聽聽聽聽Matrix(int聽m,聽int聽n):聽M(m),N(n)聽
{
聽聽聽聽聽聽聽聽element聽=聽new聽double[M*N];
聽聽聽聽}
聽聽聽聽~Matrix()
{
聽聽聽聽聽聽聽聽if聽(element)聽
{
聽聽聽聽聽聽聽聽聽聽聽聽delete聽[]element;
聽聽聽聽聽聽聽聽聽聽聽聽element聽=聽0;
聽聽聽聽聽聽聽聽}
聽聽聽聽}

聽聽聽聽int聽getM()聽const聽
{聽return聽M;}
聽聽聽聽int聽getN()聽const聽
{聽return聽N;}
聽聽聽聽int聽getSize()聽const聽
{return聽M*N;}
聽聽聽聽
聽聽聽聽double聽&聽operator聽()(int聽i,聽int聽j)聽const聽
{聽return聽element[i*N+j];聽}
聽聽聽聽double聽operator聽[](int聽index)聽const聽
{return聽element[index];聽}
聽聽聽聽
聽聽聽聽template聽<typename聽Exp>
聽聽聽聽Matrix聽&聽operator聽=聽(Exp聽&聽exp)聽
{聽聽聽聽
聽聽聽聽聽聽聽聽int聽size聽=聽M*N;
聽聽聽聽聽聽聽聽for聽(int聽i=0;i<size;i++)聽
{
聽聽聽聽聽聽聽聽聽聽聽聽element[i]聽=聽exp[i];
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽return聽*聽this;
聽聽聽聽}
template聽<typename聽LeftExp,聽typename聽RightExp>
inline聽Expression<LeftExp,EPLUS,聽RightExp>聽operator聽+聽(const聽LeftExp聽&聽a,聽const聽RightExp聽&聽b)聽
{聽
聽聽聽聽return聽Expression<LeftExp,聽EPLUS,聽RightExp>(a,聽b);
}

int聽main()聽
{
聽聽聽聽const聽int聽M=3,聽N=4;
聽聽聽聽Matrix聽a(M,N),聽b(M,N),聽c(M,N);
聽聽聽聽
{
聽聽聽聽聽聽聽聽for聽(int聽i=0;i<M;i++)聽
聽聽聽聽聽聽聽聽聽聽聽聽for聽(int聽j=0;j<N;j++)聽
{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽a(i,j)聽=聽i+j;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽b(i,j)聽=聽i*j;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽c(i,j)聽=聽0;
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽}
聽聽聽聽c聽=聽a聽+聽b;
聽聽聽聽return聽0;
}
Matrix聽operator聽
+
聽(
const
聽Matrix聽
&
聽a,聽
const
聽Matrix聽
&
聽b)聽
{
聽聽聽
int
聽M聽
=
聽a.getM(),聽N聽
=
聽a.getN();
聽聽聽Matrix聽result(M,N);
聽聽聽
for
聽(
int
聽i
=
0
;i
<
M;i
++
)聽
{
聽聽聽聽聽聽
for
聽(
int
聽j
=
0
;j
<
N;j
++
)聽
{
聽聽聽聽聽聽聽聽聽聽result(i,j)聽
=
聽A(i,j)聽
+
聽B(i,j);
聽聽聽聽聽聽}
聽聽聽}
聽聽聽
return
聽result;
}