📄 complex.h
字号:
//自定义复数类的头文件(Complex.h)
#ifndef __COMPLEX_H
#define __COMPLEX_H
#include <iostream>
#include <cmath>
using namespace std;
class Divbyzero{};
class Complex; //前向引用声明
//函数原型声明
istream &operator>>(istream &is,Complex &c);
ostream &operator<<(ostream &out,const Complex &c);
Complex operator+(const Complex &c1,const Complex &c2);
Complex operator-(const Complex &c1,const Complex &c2);
Complex operator*(const Complex &c1,const Complex &c2);
Complex operator/(const Complex &c1,const Complex &c2);
bool operator==(const Complex &c1,const Complex &c2);
bool operator!=(const Complex &c1,const Complex &c2);
bool operator>(const Complex &c1,const Complex &c2);
bool operator>=(const Complex &c1,const Complex &c2);
bool operator<(const Complex &c1,const Complex &c2);
bool operator<=(const Complex &c1,const Complex &c2);
//以上几行只有在VC++6.0 SP5以前的版本才需要
class Complex
{
private:
double rpart; //实部
double ipart; //虚部
double abs() const; //计算负数的模
double norm() const; //计算负数模的平方
public:
//构造函数
Complex(); //缺省构造函数
Complex(const Complex &c); //拷贝构造函数
Complex(const double &r,const double &i); //初始化构造函数
Complex(const double &r); //(类型)转换构造函数
void setValue(const double &r,const double &i); //设置复数值
//重载运算符
Complex &operator=(const Complex &c); //赋值=
Complex operator-(); //负号-
//重载算术运算符
friend Complex operator+(const Complex &c1,const Complex &c2);
friend Complex operator-(const Complex &c1,const Complex &c2);
friend Complex operator*(const Complex &c1,const Complex &c2);
friend Complex operator/(const Complex &c1,const Complex &c2);
Complex operator+=(const Complex &c);
Complex operator-=(const Complex &c);
Complex operator*=(const Complex &c);
Complex operator/=(const Complex &c);
//重载关系(比较)运算符
friend bool operator==(const Complex &c1,const Complex &c2);
friend bool operator!=(const Complex &c1,const Complex &c2);
friend bool operator>(const Complex &c1,const Complex &c2);
friend bool operator>=(const Complex &c1,const Complex &c2);
friend bool operator<(const Complex &c1,const Complex &c2);
friend bool operator<=(const Complex &c1,const Complex &c2);
//重载抽取运算符>>和插入运算符<<,不能重载为类的成员函数
friend istream &operator>>(istream &is,Complex &c);
friend ostream &operator<<(ostream &out,const Complex &c);
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -