Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

переопределение опрератора

519
05 ноября 2003 года
VaGon
134 / / 26.03.2003
народ как пепеопределить опреатор "[]" ?
348
05 ноября 2003 года
Saris
389 / / 14.03.2003
Цитата:
Originally posted by VaGon
народ как пепеопределить опреатор "[]" ?


Если ты хочешь его переопределить для перечислимых типов, тогда как говорил Карлсон: "Ничего не получится". В противном случае они перегружаются также как и все остальные.

310
06 ноября 2003 года
fellow
853 / / 17.03.2003
Увы, как пепеопределить опреатор "[]" не имею ни малейшего понятия, хе-хе.
А вот подсказать способ перегрузки оператора [] могу. Перегруженный operator[] должен быть членом класса и требовать наличие единственного аргумента. Поскольку смысловая нагрузка operator[] заключается в индексировании массива, то возвращаемое значение должно быть ссылкой, чтобы можно было использовать это значение слева от оператора присваивания. Пример (надуманный, но всё же):
Код:
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];
   }
};
519
06 ноября 2003 года
VaGon
134 / / 26.03.2003
Спасибо, но сам разобрался :)

ЗЫЖ
не постите в сооном виде, а то будете
пепеопределять опреатор "[]" :))))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог