1. 程式人生 > >C++定義一個複數類Complex,過載運算子“+”,使之能用於複數的加法運算。將運算子函式過載為非成員、非友元的普通函式。編寫程式,求兩個複數之和。

C++定義一個複數類Complex,過載運算子“+”,使之能用於複數的加法運算。將運算子函式過載為非成員、非友元的普通函式。編寫程式,求兩個複數之和。

#include <iostream>
#include <iomanip>
using namespace std;

class Complex
{

public:

    Complex();

    Complex(double r,double i);

    double get_real();

    double get_imag();

    void display();

private:

    double real;

    double imag;

};
Complex::Complex(){}

Complex::Complex(double r,double i)
{
	real=r;
	imag=i;
}

double Complex:: get_real()
{
	return real;
}

double Complex:: get_imag()
{
	return imag;
}

void Complex::display()
{
	cout<<"("<<real<<","<<imag<<"i)"<<endl;
}

Complex operator+(Complex &c1, Complex &c2)
{
	return Complex(c1.get_real()+c2.get_real(), c1.get_imag()+c2.get_imag());
}

int main()

{

    double real,imag;

    cin>>real>>imag;

    Complex c1(real,imag);

    cin>>real>>imag;

    Complex c2(real,imag);

    Complex c3=c1+c2;

    cout<<setiosflags(ios::fixed);

    cout<<setprecision(2);

    c3.display();

    return 0;

}

注意:外部函式不能直接呼叫私有資料型別,所以通過get方法獲得。