Complex类的设计与改进

Complex类
源码
#include <cmath>
#include <iomanip>
#include <iostream>
#include <string>
using namespace std;
class Complex
{
  private:
    double real, imaginary;
  public:
    Complex(double r = 0.0, double i = 0.0) : real(r), imaginary(i){};
    Complex(const Complex &c);
    void add(const Complex m);
    void show();
    double mod();
};
Complex::Complex(const Complex &c)
{
    real = c.real;
    imaginary = c.imaginary;
}
void Complex::add(const Complex m)
{
    real += m.real;
    imaginary += m.imaginary;
}
void Complex::show()
{
    cout << real << std::showpos << imaginary << "i" << std::noshowpos << endl;
}
double Complex::mod()
{
    return sqrt(real * real + imaginary * imaginary);
}
int main()
{
    Complex c1(3, 5);
    Complex c2 = 4.5;
    Complex c3(c1);
    c1.add(c2);
    c1.show();
    cout << c1.mod();
    return 0;
}
运行截图

按照要求写出的Comloex类有点问题,add函数的设计不合理。
改进
源码
#include <cmath>
#include <iomanip>
#include <iostream>
#include <string>
using namespace std;
class Complex
{
private:
  double real, imaginary;
public:
  Complex(double r = 0.0, double i = 0.0) : real(r), imaginary(i){};
  Complex(const Complex &c);
  Complex add(const Complex m);
  void show();
  double mod();
};
Complex::Complex(const Complex &c)
{
  real = c.real;
  imaginary = c.imaginary;
}
Complex Complex::add(const Complex m)
{
  Complex a;
  a.real = real+m.real;
  a.imaginary = imaginary+m.imaginary;
  return a;
}
void Complex::show()
{
  cout << real << std::showpos << imaginary << "i" << std::noshowpos << endl;
}
double Complex::mod()
{
  return sqrt(real * real + imaginary * imaginary);
}
int main()
{
  Complex c1(3, 5);
  Complex c2 = 4.5;
  Complex c3(c1);
  c1 = c1.add(c2);
  c1.show();
  cout << c1.mod();
  cin.get();
  return 0;
}
像这样把结果return回来才比较好。
感想
无
Complex类的设计与改进的更多相关文章
- complex类的设计实现
		
#include <iostream> #include <cmath> using namespace std; class Complex{ ,); Complex(Com ...
 - 设计、定义并实现Complex类
		
设计.定义并实现Complex类 #include <iostream> #include <cmath> using namespace std; class MyCompl ...
 - C++之不带指针类的设计——Boolean
		
经典的类设计分类 带指针类 不带指针类 Header文件的布局 #ifndef __COMPLEX__ #define __COMPLEX__ #include <iostream.h> ...
 - Unity3D 游戏开发构架篇 ——角色类的设计与持久化
		
在游戏开发中,游戏角色占了很大的篇幅,可以说游戏中所有的内容都是由主角所带动.这里就介绍一下角色类的设计和持久化. 一.角色类应用场景和设计思想 游戏中的角色类型不一而足,有不同的技能,有不同的属性等 ...
 - “乐”动人心--2017年10款最佳音乐类APP设计盘点
		
在上下班的路上,听几首自己喜欢的音乐来打发无聊的等公交车和地铁的时间是现代年轻人的常态.音乐作为最能鼓动人心的"语言",也成为了人们在互联网生活里占比例最高的消费活动之一,一款好看 ...
 - Java SE 之 数据库操作工具类(DBUtil)设计
		
JDBC创建数据库基本连接 //1.加载驱动程序 Class.forName(driveName); //2.获得数据库连接 Connection connection = DriverManager ...
 - 学员会诊之02:SVN协作以及Page类的设计
		
三层架构的学生管理系统是我们第一个稍微大型的项目:分层.一个解决方案多个Project,所以值得我们停下来好好审查审查. 1.测试SVN服务器地址 我们的作业要求学员创建自己的SVN服务器,并且将代码 ...
 - 课堂练习Complex类
		
Complex类 #include<iostream> #include<cmath> using namespace std; class Complex { public: ...
 - Date类为什么设计为可变的,而不是像String一样?
		
首先,不得不承认,这确实是类库设计的一个错误,所以"为什么"进行了这个错误设计并没有意义.但没有事物一诞生就是完美的,我们的Java只是反应的慢了一点,再慢了一点. 更何况,Dat ...
 
随机推荐
- Asp.net MVC WebApi项目的自动接口文档及测试功能打开方法
			
https://blog.csdn.net/foren_whb/article/details/78866133
 - 一次完整的http请求过程
			
转载:https://blog.51cto.com/linux5588/1351007 当我们在浏览器的地址栏输入 www.linux178.com,然后回车,回车这一瞬间到看到页面到底发生了什么呢? ...
 - 程序设计与算法(一)C语言程序设计CAP之字符串
			
C++中的字符串 字符串有三种形式 用双引号括起来的字符串常量,如果"CHINA"."C++ program" 存放于字符串数组中,以'\0'字符(ASCII吗 ...
 - 对象是存入cookie中需要注意
			
直接把对象存入cookie中的话,会转为字符串的 cookie中保存的都是字符串 所以取出来后还需要进行转换,转换成对象 JSON.parse()进行转换
 - 接口自动化测试持续集成--Soapui接口测试
			
接口测试目前笔者掌握的工具有三种: 一.python+requests+jenkins,优点:代码实现接口测试,对测试代码书写比较自由等:缺点:需要测试者需要有一定的代码基础: 二.jmeter+an ...
 - 记一次ORACLE无法启动登陆事故
			
打开XSHELL 登陆ORACLE用户 1.sqlplus scott/scott 提示登陆失败 2.sqplus / as sysdba 启动数据库提示 3.查找日志 操作日志:$ORACLE_HO ...
 - 信用评分卡(A卡/B卡/C卡)的模型简介及开发流程|干货
			
https://blog.csdn.net/varyall/article/details/81173326 如今在银行.消费金融公司等各种贷款业务机构,普遍使用信用评分,对客户实行打分制,以期对客户 ...
 - 求方差分析与两样本T检验 区别
			
方差分析与两样本T检验. 1.首先可以看到方差分析(ANOVA)包含两样本T检验,把两样本T检验作为自己的特例.因为ANOVA可以比较多个总体的均值,当然包含两个总体作为特例.实际上,T的平方就是F统 ...
 - Sketchup (待续)
			
Sketchup插件 来自20个最好用的SketchUp插件 https://www.bilibili.com/video/av17242031/?from=search&seid=15336 ...
 - java 执行https的请求
			
普通的get和post请求只能执行http的请求,遇到的了https的就歇菜了,需要SSL安全证书处理. 该方法只能用jdk1.7和1.8进行处理,jdk1.6会报Could not generate ...