#include<iostream> using namespace std; class Complexs{ public: Complexs(double r=0,double i=0):real(r),imag(i){ } void print()const; // 按指定格式输出结果 //**********found********** ___________________________ ; // 加法运算 //**********found********** _________ Complexs& operator*(Complexs&,Complexs&); // 乘法运算 private: double real,imag; // 复数的实部和虚部 }; void Complexs::print()const { cout<<real; if(imag<0)cout<<imag<<'i'<<endl; else if(imag>0) cout<<'+'<<imag<<'i'<<endl ; } Complexs Complexs::operator+(Complexs & c) { Complexs t; t.real=real+c.real; t.imag=imag+c.imag; //**********found********** return _________; } //**********found********** ____________________________________________ { Complexs c; c.real=c1.real*c2.real-c1.imag*c2.imag; //**********found********** _______________________________________ ; return c; } int main() { Complexs z1(2.0,3.0),z2(1.0,-4.0),z; cout<<"z1:"; z1.print(); cout<<"z2:"; z2.print(); z=z1+z2; cout<<"z1+z2:"; z.print(); z=z1*z2; cout<<"z1*z2:"; z.print(); system("pause"); return 0; }横线上填什么
时间: 2023-07-07 12:40:59 浏览: 59
代码中有两处错误:
1. 在 `Complexs` 类中,`operator+` 函数的返回值类型应该是 `Complexs`,而不是 `Complexs&`。
2. 在 `Complexs` 类中,`operator*` 函数应该是一个友元函数,而不是类的成员函数。在函数定义时,应该省略第一个参数的类型 `Complexs&`。
修改后的代码如下:
```c++
#include<iostream>
using namespace std;
class Complexs{
public:
Complexs(double r=0,double i=0):real(r),imag(i){ }
void print()const;
Complexs operator+(Complexs & c);
friend Complexs operator*(Complexs c1, Complexs c2);
private:
double real,imag;
};
void Complexs::print()const {
cout<<real;
if(imag<0)cout<<imag<<'i'<<endl;
else if(imag>0) cout<<'+'<<imag<<'i'<<endl ;
}
Complexs Complexs::operator+(Complexs & c) {
Complexs t;
t.real=real+c.real;
t.imag=imag+c.imag;
return t;
}
Complexs operator*(Complexs c1, Complexs c2) {
Complexs c;
c.real=c1.real*c2.real-c1.imag*c2.imag;
c.imag=c1.real*c2.imag+c1.imag*c2.real;
return c;
}
int main() {
Complexs z1(2.0,3.0),z2(1.0,-4.0),z;
cout<<"z1:";
z1.print();
cout<<"z2:";
z2.print();
z=z1+z2;
cout<<"z1+z2:";
z.print();
z=z1*z2;
cout<<"z1*z2:";
z.print();
system("pause");
return 0;
}
```