前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >c++运算符重载

c++运算符重载

作者头像
拾点阳光
发布2018-05-10 17:55:14
8120
发布2018-05-10 17:55:14
举报
文章被收录于专栏:码云1024

关键字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; 

}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-07-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档