我创建了一个bigint类(用于处理位数较多的整数计算),并重载了加号运算,如下图
在之后的使用中,我在while循环外定义了一个result变量,如下图
在while循环里如下图使用
第一次循环中运行正常,但当进入第二次循环时走到result =result+part时程序会报错。
想问一下是为什么,感觉应该是加号重载出问题了
我创建了一个bigint类(用于处理位数较多的整数计算),并重载了加号运算,如下图
在之后的使用中,我在while循环外定义了一个result变量,如下图
在while循环里如下图使用
你应该定义拷贝构造函数,进行深拷贝。类似于你的有参构造函数,要为start申请新的空间进行数据复制
否则你用result = temp2,是进行的浅拷贝,实际上这两个变量会共用start这个指针变量。当return时,temp2变量会进行析构,从而导致共有的start指针变量被系统回收,导致return 的 result中的start变为野指针,外部一操作这个start就会导致程序崩溃