美文网首页
C++ 运算符重载,看完不懂我跟你姓

C++ 运算符重载,看完不懂我跟你姓

作者: 美玉东番 | 来源:发表于2019-08-21 01:47 被阅读0次

        真的不会来,一起讨论嘛。来看看今天要介绍的东西,运算符重载(Operator Overloading),C++特性类,封装了变量和方法,方法还不明确去看上一篇文章文尾。而成员变量之间的运算太过麻烦,若涉及较多变量就会变得冗杂。因此,运算符重载就是为了解决这个问题,而且还增强了代码的复用性。

运算符重载解释

        大多数C++内置操作符都可以重新定义和重载。意思是说,这些操作符可以由程序员自己设定一种新的运算方式。这里给出了简单的加运算符的重载,在应用中,运算符重载的主要对象是类的对象。

我从w3school截图的

        这张图指明了42种可重写运算符,4中不可重写符号。我认为不用记,看看就行,只要懂了就好,这些死知识,就让电路来记住吧。

        了解了基础下面,我们来讲讲具体实现。

这就是个类,看看就行

        下来我们准备,重载加号运算符(+)。

写法和声明

        运算符重载本质上是一个函数,利用函数的封装特性,隐藏了类的成员个体间的运算过程。

        返回值类型  operator要重载的运算符(参数是引用类型){};

        这就是运算符重载的声明了。除了运算符可以换,其他都是固定格式。返回值类型就是类名了,因为返回值是类的对应类型。

        myclass a(5),b(3),c(0);

      c = a + b;

      a+b 就是重载后的运算符的应用,返回值要赋值给c这个对象,就只能是对应类的对象了。

重载实现

        运算符重载的实现,和定义区别不大,填充了函数体,去掉了分号。a被隐式入参用this指针标记,指明为前一个操作符有this指针不用传参,后一个使引用的方式传参数。但,这都不用我们来做,调用时和普通运算符无两样。

        c = a + b;

        在重载符函数内怎么操作两个对象的,调用时a和b的成员变量就是怎么被运算的,结果被放入一个对象然后返回,赋值给c。

        这就是运算符重载从无到有再到无的过程了。

图中示例

      可以参考学习,理解一下,然后再找找例子,实现一下。

      最后说一下上篇提到的,this指针返回,虽然能拿出来,但是不能用,编译报错,语法不通过,强制转换类的对象也不行,不让这么用,太坏了。

––共享知识,迎接未来,我是美玉东番。

相关文章

  • C++ 运算符重载,看完不懂我跟你姓

    真的不会来,一起讨论嘛。来看看今天要介绍的东西,运算符重载(Operator Overloading),C...

  • 第十一章 使用类

    运算符重载 运算符重载是一种形式的C++多态。运算符重载将重载的概念扩展到运算符上,允许赋予C++运算符多种含义。...

  • 1.2.15_C++ 关系运算符重载

    C++ 重载运算符和重载函数 C++ 语言支持各种关系运算符( < 、 > 、 <= 、 >= 、 == 等等),...

  • C++ 运算符重载

    运算符重载将重载的概念扩展到运算符上,允许赋予C++运算符多种含义。实际上,很多C++运算符已经重载。将*运算符用...

  • C++运算符重载

    C++运算符重载的实质:运算符重载的实质就是函数重载或函数多态。运算符重载是一种形式的C++多态。目的在于让人能够...

  • C++运算符重载-下篇 (Boolan)

    C++运算符重载-下篇 (Boolan) 本章内容:1. 运算符重载的概述2. 重载算术运算符3. 重载按位运算符...

  • C++运算符重载-上篇 (Boolan)

    C++运算符重载-上篇 (Boolan) 本章内容:1. 运算符重载的概述2. 重载算术运算符3. 重载按位运算符...

  • C++ 重载运算符

    C++重载运算符

  • C++重载

    重载 C++语言规定: 重载的运算符要保持原运算符的意义。只能对已有的运算符重载,不能增加新的运算符。重载的运算符...

  • 1.2.17_C++ ++ 和 -- 运算符重载

    C++ 重载运算符和重载函数 递增运算符( ++ )和递减运算符( -- )是 C++ 语言中两个重要的一元运算符...

网友评论

      本文标题:C++ 运算符重载,看完不懂我跟你姓

      本文链接:https://www.haomeiwen.com/subject/jwsvsctx.html