class IntArray {
enum { sz = 5 };
int i[sz];
public:
IntArray() { memset(i, 0, sz* sizeof(*i)); }
int& operator[](int x)
{
if(x<0 || x>4) throw std::out_of_range("IntArray index out of range");
return i[x];
}
};
переопределение опрератора
народ как пепеопределить опреатор "[]" ?
Цитата:
Originally posted by VaGon
народ как пепеопределить опреатор "[]" ?
народ как пепеопределить опреатор "[]" ?
Если ты хочешь его переопределить для перечислимых типов, тогда как говорил Карлсон: "Ничего не получится". В противном случае они перегружаются также как и все остальные.
А вот подсказать способ перегрузки оператора [] могу. Перегруженный operator[] должен быть членом класса и требовать наличие единственного аргумента. Поскольку смысловая нагрузка operator[] заключается в индексировании массива, то возвращаемое значение должно быть ссылкой, чтобы можно было использовать это значение слева от оператора присваивания. Пример (надуманный, но всё же):
Код:
ЗЫЖ
не постите в сооном виде, а то будете
пепеопределять опреатор "[]" :))))