cppTest-7.3:友元運算符函數

/**
 *cppTest-7.3:友元運算符函數
 *
 *author 煒sama
 */
#include<iostream.h>
class complex{
	float real,imag;
public:
	complex(float r=0,float i=0)	{ real=r; imag=i; }
	void show(){ cout<<"("<<real<<","<<imag<<")"<<endl; }
	friend complex operator+(complex &,complex &);//聲明時可以省略&後面的形參!!!
	friend complex operator-(complex &,complex &);//友元函數要把二元運算符的兩個參數都寫出來!
	friend complex operator-(complex &);
};
complex operator+(complex &c1,complex &c2)//定義時再定義形參
{
	float r=c1.real+c2.real;
	float i=c1.imag+c2.imag;
	return complex(r,i);
}
complex operator-(complex &c1,complex &c2)
{
	float r=c1.real-c2.real;
	float i=c2.imag-c2.imag;
	return complex(r,i);
}
complex operator-(complex &c)
{
	return complex(-c.real,-c.imag);
}
void main()
{
	complex c1(2.5,3.7),c2(4.2,6.5);
	complex c;
	c=c1-c2;
	c.show();
	c=c1+c2;
	c.show();
	c=-c1;
	c.show();
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章