Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2011, 12:06   #1
XuMuK
Пользователь
 
Регистрация: 08.10.2007
Сообщений: 11
Радость Перегрузка operator []

Код:
class A
{
        private:
             int m[10];
        public:
             int & operator[] (int index);
}


int & A::operator[] (int index )
{
          if ( (index < 0) || (index > 9) )
                 return ???
          return m[index];
}
Собсно, нубский вопрос Что возвратить, в случае , если index выходит за границы массива ?
В данный момент, создается левая переменная, и при выходе за границы массива, возвращается ссылка на нее. Это решение мне не нравится. Подскажите, плз, как переделать по человечески
XuMuK вне форума Ответить с цитированием
Старый 22.02.2011, 12:43   #2
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

надо throw'ить out of range
Код:
int &A::operator[] (int index)
{
    if ((index < 0) || (index > 9)) {
        throw std::out_of_range("вышли за пределы контейнера типа A");
    }
    return m[index];
}
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 22.02.2011, 13:12   #3
XuMuK
Пользователь
 
Регистрация: 08.10.2007
Сообщений: 11
По умолчанию

Пасибо )))
XuMuK вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
operator++ prikolist Общие вопросы C/C++ 17 15.01.2013 16:17
ошибка: no match for ‘operator<<’ in ‘std::operator<< [with _Traits = std::char_traits<char> Critter Общие вопросы C/C++ 5 08.08.2010 23:38
operator() в С++ Andrey995 Помощь студентам 4 01.08.2010 03:26
operator<< Наташенька Общие вопросы C/C++ 6 08.06.2009 18:59
Operator C++ EfiopianDIMON Общие вопросы C/C++ 1 13.12.2008 16:52