I have a problem with classes and structures in classes (C++) I have to overload operator [][].
Everything is OK. It’s working excellent. But the problem is when I’m moving it into struct in 14 and 15 line.
Please help.
Code:
class Data {
public:
class Proxy { //for overload [][] operator
Data& _a;
int _i;
public:
Proxy(Data& a, int i) : _a(a), _i(i) {}
Data & operator[](int j) {
_a.x_=_i;
_a.y_=j;
return _a;
}
}; // end of class Proxy
Proxy operator[](int i) {
return Proxy(*this, i);
}
Data ();
Data (const Data &);
~ Data ();
private:
int n, m, x_, y_;
double* s;
};
Code:
class Data{
struct Detail;
Detail* data;
public:
class Proxy { //for overload [][] operator
Data& _a;
int _i;
public:
Proxy(Data& a, int i) : _a(a), _i(i) {}
Data & operator[](int j) {
_a.data->x_=_i; // it’s not seeing structure !
_a.data->y_=j;
return _a;
}
}; // end of class Proxy
Proxy operator[](int i) {
return Proxy(*this, i);
}
Data();
Data(const Data&);
~Data();
};
struct Data::Detail
{
double* s;
int n, m, y_, x_;
unsigned int n;
};
Comment