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

📄 complex.h

📁 复数类 复数类 复数类 复数类 复数类 复数类 复数类 复数类 复数类 复数类 复数类 复数类
💻 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 + -