c++ 2017年10月第53題
聲明覆數類Complex,該類中有兩個私有變數real , image分別表示一個複數的實部和虛部。
為Complex類新增適當的建構函式,並使用友元函式 add實現複數加法。
#include <iostream>
using namespace std;
class Complex
{
private:
double real,image;
public:
Complex(){}
Complex(double a,double b) //兩個建構函式是考試內容
{
real=a;
image=b;
}
void setRI(double a,double b)
{
real=a;
image=b;
}
double getReal()
{
return real;
}
double getImage()
{
return image;
}
void print()
{
if(image>0)
cout<<"複數:"<<real<<"+"<<image<<"i"<<endl;
if(image<0)
cout<<"複數:"<<real<<"-"<<image<<"i"<<endl;
}
friend Complex add(Complex,Complex); //宣告友元函式
};
Complex add(Complex c1,Complex c2) //友元函式定義是考試內容
{
Complex c3;
c3.real = c1.real + c2.real; //訪問Complex類中的私有成員
c3.image = c1.image + c2.image;
return c3;
}
void main()
{
Complex c1(19,0.864),c2,c3;
c2.setRI(90,125.012);
c3=add(c1,c2);
cout<<"複數一:";
c1.print();
cout<<"複數二:";
c2.print();
cout<<"複數三:";
c3.print();
}
執行結果 :