• 运算符 重载 入门


     1 #include<iostream>
     2 using namespace std;
     3 class complex          //   定义  complex 类
     4 {
     5 public:
     6     complex(){real=0;imag=0;}      //   定义 构造函数  //  默认 函数的  值  为 0
     7     complex(double r,double i){real=r;imag=i;}      //   构造函数重载     //   在 类内 定义 带参的构造函数重载
     8     complex complex_add(complex &c2);                                   //声明 复数相加函数
     9     void display();                              //  声明输出函数
    10 private:
    11     double real;
    12     double imag;
    13 };
    14 complex complex::complex_add(complex &c2)             //   定义复数 相加 函数   //  返回类型为 complex   在类外定义 类complex 的 成员函数 complex_add 函数 .
    15 {
    16     complex c;                
    17     c.real=real+c2.real;
    18     c.imag=imag+c2.imag;
    19     return c;
    20 }
    21 void complex::display()
    22 {
    23     cout<<"("<<real<<","<<imag<<"i)"<<endl;
    24 }
    25 int main()
    26 {
    27     complex c1(3,4),c2(5,-10),c3;    //   定义 三个 复数对象
    28     c3=c1.complex_add(c2);
    29     cout<<"c1=";
    30     c1.display();
    31     cout<<"c2=";
    32     c2.display();
    33     cout<<"c1+c2=";
    34     c3.display();
    35     return 0;
    36 }
    37 //     c1.complex--------在  声明 c1 这个 对象的 时候 已经 走了一遍的  complex类  这时候  real 和 imag  的 值就被保存在了 那一个 栈帧里面 
    38 //  当 调用 c1.complex_add的时候   这个就是  real  和  imag

     重载(overloading):所谓重载,就是赋予新的含义.函数重载就是赋予新的含义,使之实现新的功能. 上面的 是 通过函数来实现 复数相加 下面将 上面的程序 稍作改动 实现 运算符重载. 给'+'赋予计算复数的功能

     1 #include<iostream>
     2 using namespace std;
     3 class complex          //   定义  complex 类
     4 {
     5 public:
     6     complex(){real=0;imag=0;}      //   定义 构造函数  //  默认 函数的  值  为 0
     7     complex(double r,double i){real=r;imag=i;}      //   构造函数重载     //   在 类内 定义 带参的构造函数重载
     8     complex operator +(complex &c2);                                   //声明 复数相加函数
     9     void display();                              //  声明输出函数
    10 private:
    11     double real;
    12     double imag;
    13 };
    14 complex complex::operator +(complex &c2)             //   定义复数 相加 函数   //  返回类型为 complex   在类外定义 类complex 的 成员函数 complex_add 函数 .
    15 {
    16     complex c;
    17     c.real=real+c2.real;
    18     c.imag=imag+c2.imag;
    19     return c;
    20 }
    21 void complex::display()
    22 {
    23     cout<<"("<<real<<","<<imag<<"i)"<<endl;
    24 }
    25 int main()
    26 {
    27     complex c1(3,4),c2(5,-10),c3;    //   定义 三个 复数对象
    28     c3=c1+c2;
    29     cout<<"c1=";
    30     c1.display();
    31     cout<<"c2=";
    32     c2.display();
    33     cout<<"c1+c2=";
    34     c3.display();
    35     return 0;
    36 }
  • 相关阅读:
    LeetCode周赛#206
    CET-6备考丨词组、佳句积累
    界面设计9.24第一次课
    图像超分辨率重建
    OpenGL和计算机图形学初步认识
    OpenGL装gult库
    安装java
    vs2019配置Opengl
    最长上升子序列(最长递增子序列)LIS
    c++科学计数法 、long long的范围
  • 原文地址:https://www.cnblogs.com/A-FM/p/5236319.html
Copyright © 2020-2023  润新知