科锐课堂笔记:2017/4/13 运算符重载与友元

  运算符重载函数原型:
  返回类型 operator运算符(目数参数列表)
  运算符重载函数可以是全局函数,也可以是类中的成员函数,如果是类的成员函数,隐式申明了重载的运算符从左起的第一个类型指该类。有些时候不得不用全局函数重载运算符,比如有一个类要重载+号运算符,+是个二目运算符,有左右两个操作对象,如果一个类想重载与整型相加,类+整型这种形式可以用成员函数完成,但整型+类这种形式就必须用全局函数去重载了,因为成员函数有隐含条件。全局重载运算符函数的参数列表是完整的,有几个目数就写上几个类型参数。全局重载函数的参数列表中至少含有一个自定义类型(类),也就是说是不能重载原有基本类型(间)的运算符操作。另外C++规定“=”、“->”、“[]”、“()”运算符只能使用成员函数重载。
  有两个特别的运算符++、--,它们既可是前置也可以是后置的,参数列表只有类对象自身(成员函数列表为空)表示后置++,列表末尾多加一个整型参数表示前置++。一般重载操作符都不改变原先的语义,对前置++对象操作结束后应用返回自身的引用,而后置++则是对象操作结束后返回一个操作前的拷贝常量对象。


  友元分友元函数、友元成员函数、友元类。如果在一个类中声明了一个友元函数,那么在这函数中可以像类内一样自由访问类对象的任何成员。友元成员函数指声明其他类的成员函数为友元,同理声明一个友元类,那么在友元类中都能随意访问该类对象成员。显而易见使用友元的缺点,破坏了类原本所具有的封装性。一般除了声明运算符全局函数为友元函数,其他情况比较少用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值