CArray::operator [ ] 的两个版本

本文详细介绍了CArray操作符的使用方式,包括非const和const数组的区别,以及如何在赋值语句中正确调用。通过实例演示了如何在实际编程中应用这些知识。

from MSDN:

CArray::operator [ ]

TYPE& operator []( int nIndex );

TYPE operator []( int nIndex ) const;

Remarks

The first operator, called for arrays that are not const, may be used on either the right (r-value) or the left (l-value) of an assignment statement. The second, called forconst arrays, may be used only on the right.

第一个版本,不被const修饰,可以是左值调用也可以是右值调用。(调用者不能是const对象,只能是非const对象)

第二个版本,被const修饰,只能是右值调用。(调用者可以是const对象也可以是非const对象,但是有了第一个版本,只被const对象调用)

例如:

    int it = 0;
    CArray<int, int&> ca;
    ca.Add(it);
    int iTest = ca[0];    // 调用第一个版本
    const CArray<int, int&>& p = ca;
    iTest = p[0];      // 调用第二个版本


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值