重载 [] 运算符

1. 下面的例子中,实现了在数组类中,如何重载 [] 运算符,使这个数组类看起来“更像一个数组”。

2.函数定义写法步骤:

  (1)首先要承认运算符重载实质就是函数调用。

  (2)承认operator[] 就是函数名。

  (3)将参数列表补齐,比如a[ i ], 那么i 就是参数;==> operator(int i);

    (4)  根据情况填写返回值。这一点需要强调(在下面的例子中注释部分也有体现)。需要强调的是:

           运算符重载函数体其实可以有 三种返回值的 写法,分别为:

           1.   void Array :: operator[](int i) 

                 返回void, 那么cout << a1[i] <<" ";  这句代码将无法实现,所以这种写法pass。

           2.   int Array :: operator[](int i) 

                 返回整形的一个数值,那么cout << a1[i] <<" ";这句话就可以正常实现了,但是例子中还有这样一句代码,

                 a1[i] = i; 也就是说在给数组元素赋值时,[ ] 重载函数的返回值作为左值被赋值为 i。那么 int Array :: operator[](int i)

                 返回一个整型数值,相当于常量给常量赋值,所以会出现左值无效的错误,而第三种返回值写法正

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值