zoukankan      html  css  js  c++  java
  • 运算符 重载 入门

     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 }
  • 相关阅读:
    【转】Android之四大组件、六大布局、五大存储
    Android O 8.0 奥利奥
    安卓7.1新特性
    那些年我们踩过的坑,SQL 中的空值陷阱!
    8年经验面试官详解 Java 面试秘诀
    Github 第三方授权登录教程
    40个超有趣的Linux命令行彩蛋和游戏
    Synchronized锁在Spring事务管理下,为啥还线程不安全?
    Windows Server 2008 R2文件服务器升级到Windows Server 2016
    牛客练习赛61
  • 原文地址:https://www.cnblogs.com/A-FM/p/5236319.html
Copyright © 2011-2022 走看看