设计、定义并实现Complex类

实验结论



Complex类

Code:

#include<iostream>
#include<cmath>
#include<cstdlib>
using namespace std;
class Complex {
public:
    Complex(double newr = 0, double newi = 0);
    Complex(Complex &c1);
    void add(Complex c1);
    void show();
    double mod();
private:
    double real;
    double imaginary;
};
//构造函数
Complex::Complex(double newr/*=0*/, double newi/*=0*/) :real(newr), imaginary(newi) {}
//复制构造函数
Complex::Complex(Complex &c1) : real(c1.real), imaginary(c1.imaginary) {}
//复数相加
void Complex::add(Complex c1) {
    real += c1.real;
    imaginary += c1.imaginary;
}
//输出
void Complex::show() {
    if (imaginary != 0)
        cout << real << "+" << imaginary << "i" << endl;
    else
        cout << real << endl;
}
//取模
double Complex::mod() {
    return sqrt(real*real + imaginary * imaginary);
}
int main() {
    Complex c1(3,5);
    Complex c2 = 4.5;
    Complex c3(c1);
    Complex c4;
    c1.add(c2);
    cout << "c1=";
    c1.show();
    cout << "c2=";
    c2.show();
    cout << "c3=";
    c3.show();
    cout << "c4=";
    c4.show();
    cout << "c1.mod="<<c1.mod()<<endl;
    system("pause");
    return 0;
}

Screensort:

c1为与c2相加后的值

c3为c1的初值

c4为默认值

实验总结与体会



1.设计类时需要将所有可能出现的情况考虑在内,以此设计参数。

原文地址:https://www.cnblogs.com/wyf-blogs/p/10626511.html

时间: 2024-08-09 01:17:57

设计、定义并实现Complex类的相关文章

课堂小练习: 设计、定义并实现complex类

#include<iostream> #include<cmath> using namespace std; class complex{ public: complex(double real0=0,double imaginary0=0); complex(complex &p); void add(complex); void qiumo(); void show(); private: double real; double imaginary; }; compl

MFC的窗口分割的设计与实现以及CSplitterWnd 类分析

1 引言 在Microsoft VC++ 6.0 中,基于MFC 的应用程序一般分为以下几种:多文档界面(MDI). 单文档界面(SDI)以及基于对话框的应用程序.其中单文档又可分为单视图的和多视图的, 一般情况下,单文档仅需要单视图就够了,如Windows 自带的记事本.画图程序等等,但 在一些情况下,单文档需要多视图支持,比如同时观察文档的不同部分,同时从不同的角度 观察同一文档等. 在MFC 的框架下,文档对象(CDocument)有一个保存其所有视图的列表,并提供了 增加视图(AddVi

Coding之路——重新学习C++(4):定义一个正确的类

我们都能定义一个类,可是如何定义一个正确的类,这是一个需要我们深入理解的问题.C++之父曾经说过定义新类型的基本思想就是将实现一个类的时候并非必要的细节(存储该类型的对象采用的布局细节)和对于这个类的正确使用至关重要的性质(访问数据的成员函数)分开设计.这种区分的最好实现方式是提供一个特定的表层接口,所有对于类内部数据结构和内部维护的调用都通过这个表层接口. 1.类该怎么定义 (1)首先我们要明白,建立一个对象,构造函数把成员变量都放在了堆之中(除了static变量之外,static变量放在全局

《C++沉思录》——类设计核查表、代理类、句柄类

<C++沉思录>集中反映C++的关键思想和编程技术,讲述如何编程,讲述为什么要这么编程,讲述程序设计的原则和方法,讲述如何思考C++编程. 一.类设计核查表 1.你的类需要一个构造函数吗? 2.你的数据成员都是私有的合理吗? 3.你的类需要一个无参的构造函数吗? 是否需要生成类对象的数组! 4.你的每一个构造函数都初始化所有的数据成员了吗? 虽然这种说法未必总是正确,但是要积极思考! 5.你的类需要析构函数吗? 6.你的类需要一个虚析构函数吗? 7.你的类需要一个拷贝构造函数吗? 8.你的类需

java: Comparable比较器,定义二叉操作类

//定义二叉操作类 class BinaryTree{ class Node{ private Node left; //左指数 private Node right; //右指数 private Comparable data; public Node(Comparable<?> data) { this.data = data; } //二叉数据比较,大的放在右边,小的放在左边 public void addNode(Node newNode) { //放在左边 if( newNode.d

类继承,定义了一个点类point,然后线条类line继承了point类,正方形类square继承line类

类继承,定义了一个点类point,然后线条类line继承了point类,正方形类Suare继承line类 正方形四个角坐标关系如图 1 /** 2 * 3 java继承实例. 4 5 6 定义了一个点类point,然后线条类line继承了point类,正方形类square继承line类. 7 8 */ 9 10 //点类 11 class PointDemo 12 { 13 private int x; 14 private int y; 15 private static int pCount

Complex 类的基本函数

//  Complex 类的基本函数 #include<iostream> using namespace std; class Complex { public : Complex(double real=1.0,double image=2.0)//构造函数  (有参) 调用2次拷贝构造 { _real=real; _image=image; } Complex()  //构造函数  (无参) {       _real=1.0;       _image=2.0; } 亦可写成: Com

C++习题 对象转换(定义一个Teacher(教师)类(教师号,姓名,性别,薪金)和一个Student(学生)类(学号,姓名,性别,成绩)编写程序,将一个Student对象(学生)转换为Teacher(教师)类。

Description 定义一个Teacher(教师)类(教师号,姓名,性别,薪金)和一个Student(学生)类(学号,姓名,性别,成绩),二者有一部分数据成员是相同的,num(号码),name(姓名),sex(性别).编写程序,将一个Student对象(学生)转换为Teacher(教师)类,只将以上3个相同的数据成员移植过去.可以设想为: 一位学生大学毕业了,留校担任教师,他原有的部分数据对现在的教师身份来说仍然是有用的,应当保留并成为其教师数据的一部分. Input 一个教师的信息和一个学

如何找出自定义标签的java类

这是一个逆推的过程(建立自定义标签可以查看以下连接:http://blog.csdn.net/antoniochan/article/details/38109905) 以<company:ang filesMark="${filesMark}"></ company:ang > 为例 现在你要找 <%@ taglib uri="/xxx/xxxx/xxx.tld"prefix="company"%> comp