線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:823
推到 Plurk!
推到 Facebook!

請問一下,解構式裡為何可以再delete 陣列?

尚未結案
woods
一般會員


發表:11
回覆:8
積分:3
註冊:2003-10-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-22 14:39:30 IP:140.130.xxx.xxx 未訂閱
 
MPIGAGeneticAlgorithm(GAGeneticAlgorithm* ga, const MPIGAGenome &mg);
MPIGAGeneticAlgorithm(GAGeneticAlgorithm & ga, const MPIGAGenome &mg);
請問一下
上述兩種有何不同呢    /* Destructor */
~MPIGAGeneticAlgorithm(){delete [] bestArray; delete [][]precedenceArray;}    解構式裡為何可以再delte 陣列    
請各位大大幫忙
pental
初階會員


發表:3
回覆:48
積分:30
註冊:2003-09-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-26 21:35:13 IP:219.68.xxx.xxx 未訂閱
通常會在解構式中把物件建構時所配置的記憶體區塊釋放掉,物件在消滅之前,是會先執行解構式的,所以就會在看這樣的寫法囉! MPIGAGeneticAlgorithm(GAGeneticAlgorithm* ga, const MPIGAGenome &mg); MPIGAGeneticAlgorithm(GAGeneticAlgorithm & ga, const MPIGAGenome &mg); 至於這兩個有什麼不一樣呢? 上面的 GAGeneticAlgorithm* ga 是 call by address 下面的 GAGeneticAlgorithm & ga 是 call by reference
woods
一般會員


發表:11
回覆:8
積分:3
註冊:2003-10-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-28 15:52:36 IP:140.130.xxx.xxx 未訂閱
那再請問一下 上述兩種方法 有甚麼不同呢
pental
初階會員


發表:3
回覆:48
積分:30
註冊:2003-09-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-29 13:49:19 IP:211.21.xxx.xxx 未訂閱
基本上兩個是一樣的東西,在 Thinking in C 裡面有提到, Call by refrence 的寫法是比較簡潔,以下是擷取自 Thinking in C 裡面的簡單範例 //: C11:Reference.cpp // Simple C references int* f(int* x) { (*x) ; return x; // Safe, x is outside this scope } int& g(int& x) { x ; // Same effect as in f() return x; // Safe, outside this scope }
系統時間:2024-09-07 3:16:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!