c++运算符重载

关键字operator

运算符重载本质是函数的调用

1. 重载操作符必须具有一个类类型或枚举类型操作数。这条规则强制重载操作符不能重新定义用于内置类型对象的操作符的含义。 如:int operator+(int, int), 不可以    2. 为类设计重载操作符的时候,必须选择是将操作符设置为类成员还是普通非成员函数。在某些情况下,程序没有选择,操作符必须是成员;在另外一些情况下,有些经验可以指导我们做出决定。下面是一些指导: a. 赋值(=),下标([]),调用(())和成员访问箭头(->)等操作符必须定义为成员,将这些操作符定义为非成员函数将在编译时标记为错误。 b. 像赋值一样,复合赋值操作符通常应定义为类的成员。与赋值不同的是,不一定非得这样做,如果定义为非成员复合赋值操作符,不会出现编译错误。 c. 改变对象状态或与给定类型紧密联系的其他一些操作符,如自增,自减和解引用,通常应定义为类成员。 d 对称的操作符,如算术操作符,相等操作符,关系操作符和位操作符,最好定义为普通非成员函数。 e io操作符必须定义为非成员函数,重载为类的友元。

返回类型 operator运算符(参数列表)

{代码..;}

一元运算符重载

例如负号

返回类型 operator-()

{

  成员变量=-成员变量;

  return *this;

}

前置加加(或减减)与后置加加(或减减)  后置的参数列表需要一个象征意义的int形参

二元运算符重载

例如加号

返回类型 operator+(类型 a,类型 b)  //全局函数

{

      类型 c;

  c.成员变量=a.成员变量+b.成员变量;

  return c; 

}

返回类型 operator+(const 类型 &b)  //成员函数

{

      类型 c;

  c.成员变量=this->成员变量+b.成员变量;

  return c; 

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏从流域到海域

Python list(列表)

Python一共有6种序列的内置类型,list和tuple是其中最常见的。6种序列的都可以进行的操作包括索引、切片,加(实际上是连接),乘(实际上是复制)...

30360
来自专栏抠抠空间

字典 (dict) 的增删改查及其他方法

一、字典的简介     字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果...

29470
来自专栏小鹏的专栏

用一个脚本学习 python

# -*- coding: utf-8 -*- # Python 2.7 学习参考脚本 # print 打印函数 print "Hello Worl...

30870
来自专栏C/C++基础

C++解引用运算符*重载

“*”是一个一元操作符,它作用于指针,获取指针所指单元的内容。当某个类中对*操作符重载时,是将该类对象当做一个指针看待,而用*操作符提取指针所指向的内容。考察如...

12740
来自专栏伦少的博客

scala 下划线使用指南

原文地址:https://my.oschina.net/joymufeng/blog/863823   作者:joymufeng

37880
来自专栏编程

对Python中的类做简要的分析

在Python中,定义类是通过class关键字,class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪...

209100
来自专栏Android开发指南

5:面向对象总结

381120
来自专栏欧阳大哥的轮子

C++运算符重载详解

C++语言的一个很有意思的特性就是除了支持函数重载外还支持运算符重载,原因就是在C++看来运算符也算是一种函数。比如一个 a + b 的加法表达式也可以用函数的...

33930
来自专栏Python攻城狮

面向对象编程-继承1.继承介绍以及单继承 2.继承示例3.多继承4.重写父类方法与调用父类方法5.类属性和实例属性6.静态方法和类方法

继承的概念:在现实生活中,继承一般指的是子女继承父辈的财产,在程序中,继承描述的是事物之间的所属关系,例如猫和狗都属于动物,程序中便可以描述为猫和狗继承自动物;...

8920
来自专栏http://www.cnblogs.com

python3 re模块

一.常用正则表达式符号和语法: '.' 匹配所有字符串,除\n以外 ‘-’ 表示范围[0-9] '*' 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 ...

509120

扫码关注云+社区

领取腾讯云代金券