c++编程问题,其中一部分是求复数的共轭,//在主函数里有z3 = z1;如果加入求共轭这一部分、则求复数加减乘时的z1均变为z1的共轭,影响了原始结果,z1被保存到内存里没释放吗?为什么会这样呢?被

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/08 06:54:52

c++编程问题,其中一部分是求复数的共轭,//在主函数里有z3 = z1;如果加入求共轭这一部分、则求复数加减乘时的z1均变为z1的共轭,影响了原始结果,z1被保存到内存里没释放吗?为什么会这样呢?被
c++编程问题,其中一部分是求复数的共轭,
//在主函数里有z3 = z1;如果加入求共轭这一部分、则求复数加减乘时的z1均变为z1的共轭,影响了原始结果,z1被保存到内存里没释放吗?为什么会这样呢?被注释掉的那部分是用成员函数重载运算符计算复数加法,我该怎么更改才能使被注释掉的与用友元函数求加法的同时运行呢?
#include "stdafx.h"
#include "iostream"
using std::cout;
using std::cin;
using std::endl;
//using namespace std;
class complex
{
public:
complex(double x,double y) {re=x; im=y;}
complex() {re=0; im=0;}
double query_re(){return re;};
double query_im(){return im;};
void show(){cout

c++编程问题,其中一部分是求复数的共轭,//在主函数里有z3 = z1;如果加入求共轭这一部分、则求复数加减乘时的z1均变为z1的共轭,影响了原始结果,z1被保存到内存里没释放吗?为什么会这样呢?被
complex complex::operator ! ()
{im = -im;return *this;}
那个这个代码把调用这个函数的对象的本身的值给该了呀!
{
return complex(re,-im);
}
这样简单又不给改本身的值.
那个重载+时,友元和成员函数用一个不就行了吗?
再说了,如果都有,同样是+,系统识别时会不知道调用哪一个的!同样两个参数,同样的运算符!不过要是那个第一个数不是你自定义的数据类型时,可以再重载友元函数,形参就不一样了!其实对同一类型的用一个就行了,要想调试,一个一个来呗.
还有你那个输出复数的值时,会出现+-xx现象,可以在输出前加一个判断的!对不同情形进行讨论,这样结果会更好看的!