C++ 友元函数实现复数的运算

C++ 友元函数实现复数的运算


#include<iostream.h>  
class imaginary  
{  
    public:  
        imaginary(double r,double i);
        friend imaginary add(const imaginary &c1,const imaginary &c2);
        friend imaginary sub(const imaginary &c1,const imaginary &c2); 
		friend imaginary mul(const imaginary &c1,const imaginary &c2); 
		friend imaginary div(const imaginary &c1,const imaginary &c2); 
		void show();
    private:  
        double real;  
        double imag;              
};  
imaginary::imaginary(double r=0.0,double i=0.0)
{  
	real=r;
	imag=i; 
} 
imaginary add(const imaginary &c1,const imaginary &c2)  
{  
    return imaginary(c1.real+c2.real,c1.imag+c2.imag);  
}  
imaginary sub(const imaginary &c1,const imaginary &c2)  
{  
    return imaginary(c1.real-c2.real,c1.imag-c2.imag);  
}  
imaginary mul(const imaginary &c1,const imaginary &c2)  
{  
    return imaginary((c1.real*c2.real-c1.imag*c2.imag),(c1.imag*c2.real+c1.real*c2.imag));  
}  
imaginary div(const imaginary &c1,const imaginary &c2)  
{  
	double a,b;
	a=(c1.real*c2.real+c1.imag*c2.imag)/(c2.imag*c2.imag+c2.real*c2.real);
	b=(c1.imag*c2.real-c1.real*c2.imag)/(c2.imag*c2.imag+c2.real*c2.real);
    return imaginary(a,b);  
}  
void imaginary::show()
{
	cout<<real<<"+"<<imag<<"i"<<endl;  
}
int main()  
{  
    imaginary c1(1,2),c2(3,4); 
	c1.show();
	c2.show();
	char ch;
	cin>>ch;
	switch(ch)
	{
		
		case '+':
			cout<<"result:";
			add(c1,c2).show();
			break;
		case '-':
			cout<<"result:";
			sub(c1,c2).show();
			break;
		case '*':
			cout<<"result:";
			mul(c1,c2).show();
			break;
		case '/':
			cout<<"result:";
			div(c1,c2).show();	
			break;
		default:
			break;  
	} 
    return 0;  
}  


猜你喜欢

转载自blog.csdn.net/juyuyh/article/details/78927356