Здравствуйте, black_claster, Вы писали:
_>Здравствуйте. _>Вот делаю класс по сути дела аналог динамического массива. _>при инициализации одномерного массива и выборки из него элементов проблем не возникло:
_>clas DM _>{ _> public: _> DM(); _> ~DM(); _> char& operator[] (int position); _> char *POINT; _> char **POINT_2; _> void init(int number); _> void init2(int i,intj); _>} _>DM::DM() _>{ _> memset(this,0,sizeof(DM)); _>} _>DM::~DM() _>{ _> delete POINT; _>}
_>void DM::init(int number) _>{ _> POINT=new char[number]; _>} _>void DM::init2(int i,int j) _>{ _> POINT2=new char[i]; _> for(int n=0;n<i;n++) _> { _> POINT2[n]=new char[j]; _> } _>} _>char& operator[] (int position) _>{ _> if(position<=MAX_SIZE)return POINT[position];
_>}
_>и в программе соответственно можно записать так:
_>DM NP; _>NP.init(9); _>NP[0]='t';
_>А вот как сделать так чтобы можно было оперировать в двумерном случае, _>т.е. _>DM NP; _>NP.init(5,5);
_>NP[1][2]='n';
_>я не знаю.
_>Подскажите пожалуйста как переопределить оператор выборки для случая двойного массива.
_>Заранее благодарен.
Или делать прокси, в которой тоже определен [], или довольствоваться GetAt(int x, int y);