我有通用地图对象。我想重载 operator[] 所以map[key]
返回键的值。我制作了两个版本的下标运算符。
非常量:
ValueType& operator[](KeyType key){
常量:
const ValueType& operator[]( KeyType& key) const{
非 const 版本工作正常,但是当我创建 const Map 时出现问题。我主要写:
const IntMap map5(17);
map5[8];
我得到这些错误:
ambiguous overload for 'operator[]' (operand types are 'const IntMap {aka const mtm::MtmMap<int, int>}' and 'int')
invalid initialization of non-const reference of type 'int&' from an rvalue of type 'int'