关于重载[]的问题
最近看别人的代码时,发现了如下语句
template < class type >
class idList {
public:
typeoperator[]( int index ) const;
type&operator[]( int index );
};
我想问一下, 这样写有什么作用?
参数列表一样, 这样编译没问题吗?
[解决办法]
第一个是常量版的,当定义类idList的对象const时,操作[]时调用常量版的.
第二个是非常量版的,当定义类idList的一般对象时,操作[]时调用这个.
[解决办法]
当你的idList实例在表达式中是左值时调用
type&operator[]( int index );
例如:
idList <int> IDs;
IDs[8] = 88;
右值时调用
typeoperator[]( int index ) const;
例如:
idList <int> IDs;
int a = IDs[8];