[問題] 多載+ class有變數是動態記憶體配置
程式碼: http://codepad.org/NDTAuevU
MATRIX MATRIX::operator+(const MATRIX &B) const {
MATRIX sum(m,n);
......(略,把加起來的值一一填入sum的data裡面)
(data在constructor中就會配置記憶體)
retrun sum;
}
呼叫的方法如下:
MATRIX A(2,3), B(2,3), C(2,3);
... ..(填值,略過)
C=A+B;
但這樣印C出來卻有亂碼
覺得應該是離開operator+後
sum的data的記憶體配置也被清掉...
不知道有沒有什麼解決方法呢?
--
推
,
→
,
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.125.213
→
04/09 23:33, , 1F
04/09 23:33, 1F
賦值是說填值的地方嗎?
如果是的話,我有在加的過程中印出來過(存進去後再印)
是沒有錯的
但離開operator+就錯了
※ 編輯: annheilong 來自: 61.228.125.213 (04/09 23:34)
※ 編輯: annheilong 來自: 61.228.125.213 (04/09 23:35)
→
04/09 23:37, , 2F
04/09 23:37, 2F
→
04/09 23:40, , 3F
04/09 23:40, 3F
還沒有寫
※ 編輯: annheilong 來自: 61.228.125.213 (04/09 23:41)
→
04/09 23:41, , 4F
04/09 23:41, 4F
有寫的在這: http://codepad.org/NJB0hMeJ
不過在operator=裡面
跑到 set_data(B.get_data()); 程式就會掛掉
有跑進去set_data(),但檢查_data不是NULL,進到for迴圈要給值就死掉了
※ 編輯: annheilong 來自: 61.228.125.213 (04/09 23:44)
→
04/10 00:09, , 5F
04/10 00:09, 5F
→
04/10 00:09, , 6F
04/10 00:09, 6F