首页 > 其他分享 >重载运算符

重载运算符

时间:2022-12-24 22:55:06浏览次数:49  
标签:运算 函数 运算符 qxz 重载 赋值

重载运算符不会改变运算符的优先级,也无法改变运算符的运算对象数。

重载某个类的某个运算符就是写一个函数定义这个类中的这个运算符。声明函数:qxz operator + (qxz b);。这个函数可以是全局的,也可以是成员函数。如果是全局的,那么参数从左到右应该和运算符的运算对象相同;如果是成员函数,系统默认最左边的运算对象为第一个参数this,因此形参表里的参数要少一个。由于外部需要调用重载了的运算符,因此这个成员函数必须在public内。如果重载运算符不改变参数、不改变成员,那么参数和函数都应当声明为const。由于重载的运算符经常要访问类的私有成员,因此一般会把这个函数设为类的友元函数。

赋值运算符。任何类的对象本身就可以通过=赋值,这是因为编译器为每个类都生成了一个默认的等号重载函数。因此我们讨论的赋值运算符的重载是一种新的重载方式。C++要求=的重载必须是成员函数。由于C++中赋值是个运算,这个运算本身是有返回值的,因此我们在函数中一般把操作作用在*this上,然后返回*this。因此函数的返回值是这个类的引用类型。声明:qxz &operator = (const qxz &b){ return *this; }

标签:运算,函数,运算符,qxz,重载,赋值
From: https://www.cnblogs.com/qixingzhi/p/17003511.html

相关文章

  • C++:重载运算符
    基本概念通常我们自定义的类类型,不具有内置类型的一些操作,比如int类型的算术运算,指针类型的解引用、取地址操作,容器类型的下标操作等。因此,如果希望我们自定义的类类型......
  • Pratt Parser解释器_TDOP_自上而下的运算符优先解析
    ParttParser又称普拉特语法分析器。指沃尔-普拉特所编写的论文《TopDownOperatorPrecedence》中的基于定义优先级运算符的方式解析为AST树的一种语法分析技术。  ......
  • 2.Java基本语法(上):变量与运算符.md
    一、关键字和保留字关键字(keyword)的定义和特点定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)特点:关键字中所有字母都为小写官方地址:​​https://docs.oracle.c......
  • 一篇文章带你了解Java中的运算符
    前言在前一篇文章中,壹哥给大家讲解了Java数据类型之间的转换,包括自动类型转换、强制类型转换、隐含的强制类型转换等问题。且在上一篇文章中,我还简单地给大家提到了Java的......
  • 关于异或和一些运算符
    上课的时候经常摸鱼,连异或都没搞懂,今天看map源码的时候才注意到有一个看不懂的计算符staticfinalinthash(Objectkey){inth;return(key==nul......
  • Kotlin学习快速入门(12)—— 位运算符
    由于不懂pythod,最近拜托朋友研究下解密live2d模型的解密算法,朋友写出了Java的代码之后我进行改版,在转为kotlin的时候,发现kotlin自动转换有些坑,以及kotlin中的位运算......
  • EL_获取域中存储的值List集合&Map集合值以及empty运算符和隐式对象pageContext
    EL_获取域中存储的值List集合&Map集合值List集合:${域名称.键名[索引]}<%Useruser=newUser();user.setName("张三");user.setAge(23......
  • EL概述以及运算符
    EL概述以及运算符1.概念:Expression Language:表达式语言2.作用:替换和简化jsp页面java代码的编写3.语法:${表达式}4.注意:jsp默认支持el表达式。如果要忽略表达式......
  • while循环、break、格式化、运算符、编码初始
    1、while循环:不断的重复着某件事就是循环2、while循环图解:3、break:终止当前循环。4、continue就是跳出本次循环、继续下次循环。下方代码都不会执行。......
  • C# 继承、重载、多态
    写个测试,一看便知 父类:usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassComponent{publicvirtualvoidTest......