美文网首页
c++ 运算符重载

c++ 运算符重载

作者: 杀破魂 | 来源:发表于2020-01-24 10:06 被阅读0次

重载方法

运算符的重载实质上是函数的重载。函数的重载就是对一个已有函数赋予新的含义,使之实现新的功能。

重载运算符的函数一般格式如下:

函数类型 operator 运算符名称 (形参列表)
{对运算符的重载处理}

例如:
Complex operator + (Complex &c1,Complex &c2);

operator是关键字,专门用于定义重载运算符的函数。

重载规则

  • c++不允许用户自定义新的运算符,只能对已有的c++运算符进行重载
  • 重载不能改变运算符运算对象。如“》”是双目运算符,重载后仍为双目,需要两个参数。运算符“+”既可以作为单目运算,也可以作为双目运算,可以分别将他们重载为单目运算或双目运算。
  • 重载不能改变运算符的优先级。如“*”和“/”优先于“+”和“-”,不论怎么重载,各运算符之间的优先级不会改变。
  • 重载不嗯呢改变运算符的结合性。如赋值运算符=是右结合(自右至左),重载后仍为右结合
  • 重载运算符的函数不能有默认的参数,否则就改变了运算符参数的个数
  • 重载的运算符必须和用户定义的自定义类型的对象一起 使用,其参数至少应有一个类对象(或类对象的引用)。
Complex operator + (int a,Complex &c)
{return Complex(a+c.real,c.imag);}
  • 用于类对象的运算符一般必须重载,但有两个列外,运算符=和&不必用户重载。(1、复制运算符=可以用于每一个类对象,可以 利用它在同类对象之间相互赋值。有时心痛提供的默认的对象赋值运算符不能满足程序的要求,在这种情况下,就需要自己重载复制运算符。2、地址运算符&也不必重载,它能返回类对象在内存中的起始地址。)
  • 运算符重载函数可以是类的成员函数,也可以是类的友元函数,还有是即非类的成员函数也不是友元函数的普通函数。

相关文章

  • 第十一章 使用类

    运算符重载 运算符重载是一种形式的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++运算符重载详解

    运算符重载规则 1.被重载的运算符必须是已经存在的C++运算符,不能重载自己创建的运算符; 2.运算符被重载之后,...

网友评论

      本文标题:c++ 运算符重载

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