gpt4 book ai didi

c++ - 在 C++ 中使用运算符重载显示不正确的结果

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:44 25 4
gpt4 key购买 nike

我正在执行复杂的加法和乘法,尽管公式正确,但以下代码产生了错误的结果。

#include<iostream>

using namespace std;

class Complex{
int real,img;
public:

Complex(int r=0,int i=0){
real=r;
img=i;
}

Complex operator + (Complex &);

Complex operator * (Complex &);

void print(){
cout<<real<<" + "<<img<<"i"<<endl;
}
};

Complex Complex::operator + (Complex &c2){
//checkig the variables true value
cout<<real<<endl;
cout<<c2.real<<endl;

return(real+c2.real,img+c2.img);
}

Complex Complex::operator * (Complex &c2){
return(real*c2.real-img*c2.img,real*c2.img+img*c2.real);
}

int main(){
Complex c1(10,5), c2(2,4);
Complex c3 = c1 + c2;
c3.print();
Complex c4 = c1 * c2;
c4.print();
return 0;
}

实际结果

9 + 0i
50 + 0i

预期结果

12 + 9i
0 + 50i

最佳答案

您得到错误的输出,因为您没有返回任何 Complex 数据类型。

你需要把return(real+c2.real,img+c2.img);改成return Complex(real+c2.real,img+c2.img);

乘法的情况相同。

关于c++ - 在 C++ 中使用运算符重载显示不正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57602571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com