我有一个 A 类和一个简单(非常有限)的迭代器 A_iterator 指向这个类并成为它的朋友:
#include<vector>
#include<iostream>
using namespace std;
class A_iterator{
public:
A_iterator(int index) : _index(index) {}
int operator*();
private:
int _index;
};
class A{
friend class A_iterator;
public:
typedef A_iterator iterator;
A() { _elems.push_back(1); _elems.push_back(2); }
private:
static vector<int> _elems; //line 19
};
vector<int> A::_elems; // line 22
int A_iterator::operator*()
{
return A::_elems[_index]; //line 26
}
int main()
{
A a;
A::iterator it(0);
cout << *it << endl; //line 33
}
这工作正常。但是,我不希望 _elems 是静态的。如果我将从第 19 行删除静态关键字并删除第 22 行,那么我应该如何修改第 26 行?第 33 行不能更改。