討論串[問題] 請問函式的引數若為另一函式,是否就不 …
共 4 篇文章
首頁
上一頁
1
下一頁
尾頁

推噓5(5推 0噓 3→)留言8則,0人參與, 最新作者littleshan (我要加入劍道社!)時間16年前 (2009/05/29 15:25), 編輯資訊
0
0
0
內容預覽:
class Matrix {. public:. Matrix(int m, int n). : my_dim1(m), my_dim2(n), my_data(), my_data(new double[m*n]). {. // empty. }. Matrix(const Matrix& m);
(還有418個字)

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者Carbontube (碳管)時間16年前 (2009/05/28 22:49), 編輯資訊
0
0
0
內容預覽:
這個問題沒有快速又簡單的解法。最簡單的解法是 Mul() 和 transpose(). 都回傳 Matrix (傳值),雖然會浪費多餘的時間去複製暫時變數,但不會. 造成 memory leak 或 double free 的情況。如果需要良好的效能,可能. 就需要搬出 expression tem
(還有512個字)

推噓2(2推 0噓 3→)留言5則,0人參與, 最新作者littleshan (我要加入劍道社!)時間16年前 (2009/05/28 09:12), 編輯資訊
0
0
0
內容預覽:
首先,auto_ptr 不管用,原因不只是 auto_ptr 不會呼叫 delete[],. 而是它會讓 Mul 產生副作用。. 為了使用 auto_ptr,我們必需把 matrix 包成一個 class. class Matrix {. int n;. double **data;. .... }
(還有462個字)

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者dcleft (遇到神經病)時間16年前 (2009/05/28 08:27), 編輯資訊
0
0
0
內容預覽:
推文中大大提到的autoptr應該無法解決問題. 因為autoptr只會呼叫delete而不會呼叫delete[]. 如果我是原po的話,回傳值我會用vector<vector<double> >取代double**. 好處是離開Mul函式後就會自動回收,壞處是要付出constructor跟dest
首頁
上一頁
1
下一頁
尾頁