⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 li4.8_1.cpp

📁 c++类函数中的运算符重载
💻 CPP
字号:
#include"iostream"
#include"cmath"
#include"iomanip"
using namespace std;

class Complex{
	double Real,Image;
public:
	Complex(double r=0.0,double i=0.0){Real=r;Image=i;}
	
	Complex(Complex &com){
		Real=com.Real;Image=com.Image;
	}
	
	void Print(){
		cout<<setw(6)<<"Real="<<Real<<setw(10)<<"Image="<<Image<<endl;
	}
	
	friend Complex operator+(const Complex &,const Complex &);
	friend Complex operator+=(Complex &,const Complex &);
	friend double abs(Complex &);
	friend Complex operator*(const Complex &,const Complex &);
	friend Complex operator/(const Complex &,const Complex &);
};

Complex Complex::operator+(Complex c){
	Complex temp(Real+c.Real,Image+c.Image);
	return temp;
}

Complex Complex::operator+(double d){
	return Complex(Real+d,Image);
}

Complex Complex::operator+=(Complex c){
	Complex temp;
	temp.Real=Real+c.Real;
	temp.Image=Image+c.Image;
	Real=temp.Real;
	Image=temp.Image;
	return temp;
}

Complex Complex::operator=(Complex c){
	Complex temp;
	temp.Real=c.Real;
	temp.Image=c.Image;
	Real=temp.Real;
	Image=temp.Image;
	return temp;
}

double Complex::abs(void){
	return sqrt(Real*Real+Image*Image);
}

Complex Complex::operator*(Complex c){
	return Complex(Real*c.Real-Image*c.Image,Real*c.Image+c.Real*Image);
}

Complex Complex::operator/(Complex c){
	double d=c.Real*c.Real+c.Image*c.Image;
	return Complex((Real*c.Real+Image*c.Image)/d,(Image*c.Real-Real*c.Image)/d);
}

int main(){
	Complex c1(1.0,1.0),c2(2.0,2.0),c3(4.0,4.0),c;
	double d=0.5;
	c1.Print();
	c=c2+c3;c.Print();
	c+=c1;c.Print();
	c=c+d;c.Print();
	c=c3*c2;c.Print();
	c=c3/c1;c.Print();
	cout<<"c3的模为:"<<c3.abs()<<endl;
	c=c3=c2=c1;c.Print();
	c+=c3+=c2+=c1;c.Print();
	cout<<"press enter to continue"<<endl;
	cin.get();
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -