c++的运算符重载的局限性

运算符重载的局限性

1、无法重载的运算符
. 成员访问运算符
:: 作用域运算符
sizeof 长度运算符
?: 条件运算符
# 预处理符号
2、只能重载为成员函数的运算符

在C++中,有几个函数只能被重载为成员函数,它们分别是:

  1. 赋值运算符重载=,也叫赋值函数,要进行深拷贝时就需要重载。

  2. 索引运算符重载[],可以把对象伪装成数组使用。

  3. 函数调用运算符重载(),可以把对象伪装成函数使用。

  4. 成员访问运算符重载->,可以把对象伪装成指针使用。

    需要注意的是,这些函数只能被定义为成员函数,而不能被定义为全局函数或友元函数。除了上述函数,其他函数可以被定义为全局函数或友元函数。

3、优先重载为成员函数

只有无法修改该对象的代码时,才建议重载为全局函数,但重载全局函数需要在运算对象的类内设置友元,所以语法上支持,但实际情况是个死局。

4、重载运算符时要注意的问题

1、重载运算符的目标是为了提高代码可读性、实用性,如果达不该效果建议定义为函数。

2、重载运算符函数时,要符合情况情理,不要反人性,不要成为你炫技的工具。

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值