31-完善的复数类
来源:互联网 发布:软件测试和评测 编辑:程序博客网 时间:2024/05/17 22:45
1、
2、
3、
4、
Complex.h#ifndef _COMPLEX_H_#define _COMPLEX_H_class Complex{ double a; double b;public: Complex(double a = 0, double b = 0); double getA(); double getB(); double getModulus(); Complex operator + (const Complex& c); Complex operator - (const Complex& c); Complex operator * (const Complex& c); Complex operator / (const Complex& c); bool operator == (const Complex& c); bool operator != (const Complex& c); Complex& operator = (const Complex& c);};#endif
Complex.cpp#include "Complex.h"#include "math.h"Complex::Complex(double a, double b){ this->a = a; this->b = b;}double Complex::getA(){ return a;}double Complex::getB(){ return b;}double Complex::getModulus(){ return sqrt(a * a + b * b);}Complex Complex::operator + (const Complex& c){ double na = a + c.a; double nb = b + c.b; Complex ret(na, nb); return ret;}Complex Complex::operator - (const Complex& c){ double na = a - c.a; double nb = b - c.b; Complex ret(na, nb); return ret;}Complex Complex::operator * (const Complex& c){ double na = a * c.a - b * c.b; double nb = a * c.b + b * c.a; Complex ret(na, nb); return ret;}Complex Complex::operator / (const Complex& c){ double cm = c.a * c.a + c.b * c.b; double na = (a * c.a + b * c.b) / cm; double nb = (b * c.a - a * c.b) / cm; Complex ret(na, nb); return ret;}bool Complex::operator == (const Complex& c){ return (a == c.a) && (b == c.b);}bool Complex::operator != (const Complex& c){ return !(*this == c);}Complex& Complex::operator = (const Complex& c){ if( this != &c )//判断当前两个对象是不是同一个对象 { a = c.a; b = c.b; } return *this;//返回当前对象的引用,为了实现连续的赋值操作}
#include <stdio.h>#include "Complex.h"int main(){ Complex c1(1, 2); Complex c2(3, 6); Complex c3 = c2 - c1; Complex c4 = c1 * c3; Complex c5 = c2 / c1; printf("c3.a = %f, c3.b = %f\n", c3.getA(), c3.getB()); printf("c4.a = %f, c4.b = %f\n", c4.getA(), c4.getB()); printf("c5.a = %f, c5.b = %f\n", c5.getA(), c5.getB()); Complex c6(2, 4); printf("c3 == c6 : %d\n", c3 == c6); printf("c3 != c4 : %d\n", c3 != c4); (c3 = c2) = c1; printf("c1.a = %f, c1.b = %f\n", c1.getA(), c1.getB()); printf("c2.a = %f, c2.b = %f\n", c2.getA(), c2.getB()); printf("c3.a = %f, c3.b = %f\n", c3.getA(), c3.getB()); return 0;}
阅读全文
0 0
- 31-完善的复数类
- 第三十一课:完善的复数类----------狄泰软件学院
- 复数类的实现
- 复数类的改进
- 复数类的加减
- 复数的类
- 复数类的四则运算
- 复数类的实现
- 复数类的运算
- 复数类的实现
- 第7周项目2-实现复数类中的运算符重载(3.完善功能)
- 复数类的设计及其应用:复数类的设计
- 复数类的JAVA实现
- 复数运算的JAVA类
- 简单的实现复数类
- 复数类的简单实现
- CUDA复数类的定义
- [c++]复数类的实现
- 每日产品辣评:神机诺基亚222发布,续航29天
- Flume和SparkStream结合的两种方式--pull
- Mac解压.7z文件
- 鹿晗最佳“拍”档新身份:OPPO R7s玫瑰金成表白神器
- 互联网安全领袖峰会:腾讯“领御守护计划”为智慧城市筑基
- 31-完善的复数类
- numpy中的tile函数
- 关闭8080端口或者其他端口
- R E C U R S I O N
- 易观智库:腾讯手机管家活跃用户数第一
- 运营商流量不清零却偷跑?手机管家精准监控
- 一只爬虫带你看世界【10】
- python中sort()函数和sorted()函数的区别
- 改正第一次练习