二、用C++实现复数结构

简介: 二、用C++实现复数结构

1、定义复数

#include <iostream>
using namespace std;
typedef class Complex
{
  float realPart;
  float imagPart;
public:
  Complex() {}
  Complex(float real, float imag)
  {
    realPart = real;
    imagPart = imag;
  }
  float GetRealPart()
  {//获得实数部分
    return realPart;
  }
  float GetImagPart()
  {//获得虚数部分
    return imagPart;
  }
  void Add(float real, float imag);     //复数相加
  void Minus(float real, float imag);     //复数相减
  void Multiply(float real, float imag);    //复数相乘
  void Divide(float real, float imag);    //复数相除
  //运算符重载
  Complex operator + (Complex &c2)
  {
    Add(c2.GetRealPart(), c2.GetImagPart());
    return *this;
  }
  Complex operator - (Complex &c2)
  {
    Minus(c2.GetRealPart(), c2.GetImagPart());
    return *this;
  }
  Complex operator * (Complex &c2)
  {
    Multiply(c2.GetRealPart(), c2.GetImagPart());
    return *this;
  }
  Complex operator / (Complex &c2)
  {
    Divide(c2.GetRealPart(), c2.GetImagPart());
    return *this;
  }
}Cplx;//类重命名

2、类外定义函数

//类内声明,类外定义
void Complex::Add(float real, float imag)
{
  this->realPart += real;
  this->imagPart += imag;
}
void Complex::Minus(float real, float imag)
{
  this->realPart -= real;
  this->imagPart -= imag;
}
void Complex::Multiply(float real, float imag)
{
  this->realPart = this->realPart * real - this->imagPart*imag;//(ac-bd)
  this->imagPart = this->imagPart*real+this->realPart*imag;//(bc+ad)
}
void Complex::Divide(float real, float imag)
{
  this->realPart = (this->realPart * real + this->imagPart*imag)/(pow(real,2) + pow(imag,2));//(ac+bd)/(c^2+d^2)
  this->imagPart = (this->imagPart*real - this->realPart*imag)/(pow(real, 2) + pow(imag, 2));//(bc-ad)/(c^2+d^2)
}

3、主调函数

int main()
{
  Cplx c1 = Cplx(1,2);
  Cplx c2 = Cplx(4,5);
  Cplx res1 = c1 + c2;
  Cplx res2 = c1 - c2;
  Cplx res3 = c1 * c2;
  Cplx res4 = c1 / c2;
  cout << res1.GetRealPart() << " " << res1.GetImagPart() << endl;
  cout << res2.GetRealPart() << " " << res2.GetImagPart() << endl;
  cout << res3.GetRealPart() << " " << res2.GetImagPart() << endl;
  cout << res4.GetRealPart() << " " << res2.GetImagPart() << endl;
  return 0;
}



相关文章
C4.
|
1月前
|
算法 程序员 C++
C++标准头文件结构
C++标准头文件结构
C4.
24 0
|
2天前
|
存储 搜索推荐 C++
【C++高阶(二)】熟悉STL中的map和set --了解KV模型和pair结构
【C++高阶(二)】熟悉STL中的map和set --了解KV模型和pair结构
|
30天前
|
存储 算法 C语言
【C/C++ 链表结构】探索链表迭代器:C++实现的深入分析与优化策略
【C/C++ 链表结构】探索链表迭代器:C++实现的深入分析与优化策略
38 0
|
1月前
|
存储 算法 C++
【C++ map结构 】std::map 和 std::unordered_map 在使用上的差异
【C++ map结构 】std::map 和 std::unordered_map 在使用上的差异
22 0
|
1月前
|
存储 算法 C++
【C++ 包装器类 map】C++ 标准库(std)中的map结构 哈希表(unordered_map)和黑红树(map)教程
【C++ 包装器类 map】C++ 标准库(std)中的map结构 哈希表(unordered_map)和黑红树(map)教程
83 1
|
1月前
|
C++
C++控制结构
C++控制结构
|
1月前
|
存储 安全 Linux
C++文件格式深度解析:从底层结构到关键特性
C++文件格式深度解析:从底层结构到关键特性
250 3
C++文件格式深度解析:从底层结构到关键特性
|
1月前
|
存储 C++ 索引
c++for结构循环超详细讲解
c++for结构循环超详细讲解
21 1
|
5月前
|
IDE 开发工具 C++
⚡【C++要笑着学】(40) OF框架:OpenFrameworks 框架介绍 | oF 文件结构 | 图形基础 | 使用 ProjectGenerator 创建项目
⚡【C++要笑着学】(40) OF框架:OpenFrameworks 框架介绍 | oF 文件结构 | 图形基础 | 使用 ProjectGenerator 创建项目
55 0
|
3月前
|
Linux 监控 Shell
Linux 终端命令之文件浏览(4) head, tail
Linux 终端命令之文件浏览(4) head, tail
30 0
Linux 终端命令之文件浏览(4) head, tail

热门文章

最新文章