[問題] 一個疑似關於使用constructor的bug

作者: g12288 (史蒂芬)   2014-04-23 18:46:09
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Dev-C++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
no
問題(Question):
如同結果圖,有些是對的,有些則出現很大的數..
感覺是有指標的使用問題...
但更直接的問題是operator+和-的部分
一開始宣告temp感覺毛毛的 不太確定
(之所以確定是+的問題是因為有用main函式裡
註解掉的那幾行測試,做+之前有set好,但做完
就會不對)
然後順便問問為什麼兩個乘法結果都沒跑出來
(159 189 219和 3 3 3)
題目大概的說明在補充說明裡.
餵入的資料(Input):
3 3
1 2 3
4 5 6
7 8 9
3 3
2 3 4
5 6 7
8 9 10
3
1 2 3
3
2 3 4
預期的正確結果(Expected Output):
3 5 7
9 11 13
15 17 19
3 5 7
159 189 219
1 1 1
1 1 1
1 1 1
1 1 1
3 3 3
錯誤結果(Wrong Output):
http://ppt.cc/0ORA
如圖所示
程式碼(Code):(請善用置底文網頁, 記得排版)
http://codepad.org/YFPcndkZ
補充說明(Supplement):
使用者input兩個矩陣、兩個向量
讓他們矩陣及矩陣、向量及向量相加相減
以及矩陣及向量相乘
用的方法是動態二維陣列.
煩請有空的大大解惑<(_ _)>
作者: Feis (永遠睡不著 @@)   2014-04-23 18:52:00
Rule of Three
作者: g12288 (史蒂芬)   2014-04-23 19:35:00
但是我該指到的地方應該有指到耶...真的抓不到bug
作者: a27417332 (等號卡比)   2014-04-23 21:08:00
如果我沒猜錯的話,問題就是temptemp在離開函數的時候會把你自己配置到ptr幹掉預設copy ctor和賦值運算子都是直接複製成員內容所以你拿到的指標應該就是個房子被拆掉了路牌,恩所以換個會告訴你使用記憶體錯誤的工具吧XD
作者: g12288 (史蒂芬)   2014-04-23 21:40:00
哈哈...一開始想說直接就宣告大一點的二維陣列 但就會覺得限制了範圍有點low 用指標來動態處理又經常會有問題....真的是兩難啊~~

Links booklink

Contact Us: admin [ a t ] ucptt.com