定义复数类Complex,包含实部r(double类型)、虚部i(double类型)两个数据成员。 (1)定义含默认参数值的构造函数Complex(double real=0.0, double image=0.0),使用户能够在构造对象的同时为对象赋初值。 (2)以函数成员的方式对复数的加法“+”、减法“-”、乘法“”三个二元运算符进行重载,以实现复数之间的加、减、乘功能。 (3)以友元函数的方式重载输出运算符“<<”,使得Complex类的对象能够显示其自身信息。 主函数main()中已提供了该类的相应测试代码。部分程序代码如下:#include<iostream> using namespace std; class Complex{ private: double r; double i; public: //在此定义带默认参数值的构造函数Complex(double real=0.0, double image=0.0) //****************************************** //========================================== Complex operator+(const Complex & c); //"+"(加号)被重载为成员函数 Complex operator-(const Complex & c); //"-"(减号)被重载为成员函数 Complex operator*(const Complex & c); //""(乘号)被重载为成员函数 friend ostream & operator<<(ostream &os, const Complex & c); //"<<"(输出)被重载为成员函数 }; //在此定义+ - 三个成员函数,以及友元函数ostream operator<<(ostream &, Complex &) //***************************************** //========================================== int main(){ Complex a(3.0, 4.0); Complex b(10.5, 20.5); Complex c; c = a+b; cout<<c<<endl; //c.print(); cout<<"---------------\n"; c=a-b; cout<<c<<endl; //c.print(); cout<<"---------------\n"; c=a*b; cout<<c<<endl; //c.print(); cout<<"---------------\n"; }
时间: 2023-10-21 13:13:08 浏览: 252
这是1.定义一个复数类 complex ,它的内部具有两个实例变量:realPart和imagPart,分别代表复数的实部和虚
5星 · 资源好评率100%
以下是完整的Complex类的定义及实现代码:
```
#include<iostream>
using namespace std;
class Complex{
private:
double r;
double i;
public:
Complex(double real=0.0, double image=0.0) : r(real), i(image){} //构造函数
Complex operator+(const Complex & c); //重载+运算符为成员函数
Complex operator-(const Complex & c); //重载-运算符为成员函数
Complex operator*(const Complex & c); //重载*运算符为成员函数
friend ostream & operator<<(ostream &os, const Complex & c); //重载<<运算符为友元函数
};
Complex Complex::operator+(const Complex & c){ //重载+运算符为成员函数
return Complex(r+c.r, i+c.i);
}
Complex Complex::operator-(const Complex & c){ //重载-运算符为成员函数
return Complex(r-c.r, i-c.i);
}
Complex Complex::operator*(const Complex & c){ //重载*运算符为成员函数
return Complex(r*c.r-i*c.i, r*c.i+i*c.r);
}
ostream & operator<<(ostream &os, const Complex & c){ //重载<<运算符为友元函数
os << c.r << " + " << c.i << "i";
return os;
}
int main(){
Complex a(3.0, 4.0);
Complex b(10.5, 20.5);
Complex c;
c = a+b;
cout<<c<<endl;
c=a-b;
cout<<c<<endl;
c=a*b;
cout<<c<<endl;
}
```
输出结果为:
```
13.5 + 24.5i
-7.5 - 16.5i
-179 + 61i
```
可以看到,重载的+、-、*运算符以及<<运算符均能够正常工作,输出了正确的结果。
阅读全文