7-3 复数类的操作 (20分)----十分简单的代码

1、声明一个复数类Complex(类私有数据成员为double型的real和image)

2、定义构造函数,用于指定复数的实部与虚部。

3、定义取反成员函数,调用时能返回该复数的相反数(实部、虚部分别是原数的相反数)。

4、定义成员函数Print(),调用该函数时,以格式(real, image)输出当前对象。

5、编写加法友元函数,以复数对象c1,c2为参数,求两个复数对象相加之和。

6、主程序实现:

(1)读入两个实数,用于初始化对象c1。

(2)读入两个实数,用于初始化对象c2。

(3)计算c1与c2相加结果,并输出。

(4)计算c2的相反数与c1相加结果,并输出。

输入格式:
输入有两行:

第一行是复数c1的实部与虚部,以空格分隔;

第二行是复数c2的实部与虚部,以空格分隔。

输出格式:
输出共三行:

第一行是c1与c2之和;

第二行是c2的相反数与c1之和;

第三行是c2 。

输入样例:
在这里给出一组输入。例如:

2.5 3.7
4.2 6.5
输出样例:
在这里给出相应的输出。例如:

(6.7, 10.2)
(-1.7, -2.8)
(4.2, 6.5)

#include
using namespace std;
class Complex{
    double real,image;
public:
    Complex(double r=0,double i=0):real(r),image(i){}
    friend Complex deverse(const Complex&c);//养成使用const的好习惯
    void Print(){cout<<"("<<real<<", "<<image<<")"<<endl;}
    friend Complex add(const Complex&a,const Complex&b);
};
Complex deverse(const Complex &c){
    return Complex(-c.real,-c.image);}
Complex add(const Complex&a,const Complex &b){
    return Complex(a.real+b.real,a.image+b.image);
}
int main(){
    double r1,r2,i1,i2;
    cin>>r1>>i1>>r2>>i2;
    Complex a(r1,i1),b(r2,i2);
    add(a,b).Print();
    //因为add()返回的是对象所以可以直接调用Print()打印结果
    add(a,deverse(b)).Print();
    b.Print();
    return 0;
}

你可能感兴趣的:(c++,类)