[问题] 一个疑似关于使用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):


如图所示
程式码(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