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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值