Witam!
Mam problem i niestety nie mogę go rozwiązać. Otóż mam napisać m.in. własną klasę, która będzie działać jak wektor i iterator do niej. Mam mniej więcej takie pola:
template <typename T>
class MyVector {
template <typename T> friend class MyIterator;
private:
T* table;
int currentSize;
public:
/*...*/
template <typename T>
class MyIterator {
template <typename T> friend class MyVector;
private:
int position;
bool isNext;
const MyVector<T>* vect;
public:
/*...*/
No i w klasie MyIterator mam takie cudo:
friend ostream& operator<< (ostream& out, const MyIterator<T>& iter) {
out << iter.vect->table[position]<< endl;
return out;
}
Niestety, to nie zadziała, gdyż będzie błąd:
error C2248: 'MyVector<T>::table' : cannot access private member declared in class 'MyVector<T>'
W jaki sposób mogę w tym operatorze dostać się do table[position] ?