Re: переопределение [][]
От: placement_new  
Дата: 29.10.10 07:49
Оценка:
Здравствуйте, 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);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.