首页
学习
活动
专区
圈层
工具
发布

使用重载运算符实现一个复数类(C++实验十)

参考链接: C++程序使用运算符重载减去复数 使用重载运算符实现一个复数类   实验目的: 1.掌握用成员函数重载运算符的方法 2.掌握用友元函数重载运算符的方法   实验要求:   定义一个复数类,描述一些必须的成员函数...,如:构造函数,析构函数,赋值函数,返回数据成员值的函数等。...std; class Complex{//复数类 public:     Complex(double r=0,double i=0){//构造函数         re=r;         im=...=(Complex &c1,Complex &c2); private:     double re;//复数实部     double im;//复数虚部 }; //重载+运算符 Complex operator...&c) {     double r,i;     r=(re*c.re+im*c.im)/(c.re*c.re+c.im*c.im);     i=(im*c.re-re*c.im)/(c.re*c.re

1.7K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    「c++小学期」实验题目及代码

    写在public里(声明必须在..里,定义里外都可以) 析构函数里面要写什么?  留空就可以了吧,如果有动态申请的内存就delete掉 拷贝构造函数怎么写? ...当一个函数要用到这个类时(可能还有其他类)的私有成员,但是它不是这个类独享的函数,调用时不需要通过对象或指针。 友元函数定义在哪? ...不过这个const型的Matrix参数我改回引用了。...在函数前面加了个virtual 关键字 抽象类是什么?  就是不能new出对象的类,有纯虚函数,“只提供声明,没有实现”,是对子类的约束,是“接口继承”。 抽象类的区别? ...(double r=0,double i=0):re(r),im(i){} Complex(Complex &b):re(b.re),im(b.im){} ~Complex(){}

    1.5K40

    C++ 运算符重载的基本概念

    : // 构造函数,如果不传参数,默认把实部和虚部初始化为0 Complex(double r = 0.0, double i = 0.0):m_real(r),m_imag(i) { } // 重载...&b); private: double m_real; // 实部的值 double m_imag; // 虚部的值 }; // 重载+号运算符,属于普通函数,不是对象的成员函数 Complex...如:c = a + b; 等价于c = operator+(a,b) 在上面的代码中,我把重载+号运算符的普通函数,在Complex复数类中定义成了友元函数,目的是为了友元函数能访问对象的私有成员,否则会编译报错...c.m_real, m_imag - c.m_imag); } 首先先说一下参数表为什么是const Complex & c常引用类型,首先如果参数表如果普通的对象形式Complex c,那么在入参的时候...再来说一下返回值为什么是普通Complex对象,因为本次 - 号和 + 号运算符的函数执行之后,需要返回一个新的对象给到左值。

    1.2K40

    IM通讯协议专题学习(五):Protobuf到底比JSON快几倍?全方位实测!

    咱们用 Protobuf 是冲着跨语言无歧义的 IDL 的去的,才不仅仅是因为性能呢。好吧,这个我同意。...而且这种倾向性是不明确的。比如 medium 的输入,到底说明了什么?medium 对于不同的人来说,可能意味着完全不同的东西。所以,在这里我想改变一下游戏的规则。...不去选择一个所谓的最现实的配比,而是构造一些极端的情况。这样,我们可以一目了然的知道,JSON的强项和弱点都是什么。通过把这些缺陷放大出来,我们也就可以对最坏的情况有一个清晰的预期。...this.value = val;        this.coder = UTF16;    }}使用这个虽然被废弃,但是还没有被删除的构造函数,我们可以使用 Arrays.copyOfRange 来直接构造...然而,在测试之后,发现这个实现方式并没有比 DSL-JSON 的实现更快。似乎 JVM 的 Hotspot 动态编译时对这段循环的代码做了模式匹配,识别出了更高效的实现方式。

    87520

    复数运算(友元函数)

    题目描述 复数类的声明如下: 要求如下: 1.实现复数类和友元函数addCom和outCom。 2.  ...参考addCom函数为复数类增加一个友元函数minusCom,用于实现两个复数的减法 3.在main函数中,通过友元函数,实现复数的加减法和复数的输出。 输入 第1行:第1个复数的实部和虚部。...,在类内声明的友元函数并不是属于这个类的,友元函数是独立于类的,类只是给予它访问私有成员的权限而已。...注意到实现加减法的两个成员函数的返回值是complex类,这意味着我们需要在函数体内创建一个complex类对象,为了方便,我们使用带参数的构造函数,直接将两个复数的实部虚部做运算作为构造函数的参数,然后直接返回这个类对象...r,double i):real(r),imag(i){} complex addCom(complex c1,complex c2) { complex c(c1.real+c2.real,c1.

    23920

    C++构造函数的作用_c++什么是构造函数

    ,再说了没有参数我也可以对成员变量赋值把它赋值为0嘛,这个时候就不需要参数我就是固定的写死的就是要给他赋值为0,所以没有参数的构造函数照样具有很巨大的意义。)...所以看完这个博客不要就记住了构造函数的赋值作用,他还有其他很多的作用。 首先从本质上理解构造函数: 在 C++ 程序中,变量在定义时可以初始化。如果不进行初始化,变量的初始值会是什么呢?...当然,如果程序员在定义局部变量时将其初始化了,那么这个初始化的工作也是每次函数被调用时都要做的,但这是编程者要求做的,因而不会是无谓的。...double r, double i); //设置实部和虚部 }; 上面这个 Complex 类代表复数,没有编写构造函数,因此编译器会为 Complex 类自动生成一个无参的构造函数。...//第二个参数的默认值为0 }; Complex::Complex(double r,double i)//定义构造函数 { real = r; imag = i; } 那么以下语句有的能够编译通过

    2.2K20

    C++常见面试题

    声明一个 circle 类,有数据成员 Radius(半径,float型),成员函数 GetArea() 计算圆的面积,在main 函数中声明一个cirlce类的对象 c1,其半径为 5.6,调用 GetArea...声明复数类Complex,该类中有两个私有变量 real 和 imag,分别表示一个复数中的实部和虚部,请添加一个友元函数add实现 复数的加法。...定义一个图类(figure),其中有保护类的数据成员:高度(height)和宽度(width), 一个公有的构造函数。由该图形类建立两个派生类:矩形类和等腰三角形类。...在每个派生类都包含一个函数 area(),分别用来计算矩形和等腰三角形的面积。..., width; public: figure(double = 0, double = 0); }; // 类外定义构造函数 figure::figure(double h,

    62710

    String类不可变分析以及普通不可变类

    至少在我们自己写的普通代码中不能够做到,因为我们根本不能够访问到这个value引用,更不能通过这个引用去修改数组。 那么用什么方式可以访问私有成员呢?...为了具体说明用静态工厂方法来替代公有的构造器,下面以Complex为例: //复数类 public class Complex{ //实数部分 private final double...re; //虚数部分 private final double im; //私有构造器 private Complex(double re,double im){...this.re = re; this.im = im; } //静态工厂方法,返回对象唯一实例 public static Complex valueOf(double...re,double im){ return new Complex(re,im); } ... } 不可变的类提供一些静态工厂方法,它们把频繁请求的实例缓存起来,从而当现在实例符合请求的时候

    76730
    领券