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<iostream>
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;
}