首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于重载[]的有关问题

2012-02-14 
关于重载[]的问题最近看别人的代码时,发现了如下语句template classtypeclassidList{public:typeoperato

关于重载[]的问题
最近看别人的代码时,发现了如下语句
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];

热点排行