我有一个从std::map 继承的类
class LeMap : public std::map<int,int>
{
...
};
我有另一个类应该循环到它的elments上:
class LeMapUser {
LeMap mMap;
public:
void printElements()
{
for( auto& element : mMap ) { whatever(element); }
}
private:
void whatever(int element){ ... }
};
是否可以模拟LeMap
以使用gmock测试whatever
?简单地说:我应该重载什么运算符来执行循环?
AFAIK基于范围的for
循环需要mMap
对象具有返回迭代器的begin()
成员。迭代器需要有一个后增量运算符来遍历范围。此外,mMap
必须有一个end()
成员,返回一个与迭代器相当的值(但不一定是迭代器本身(。