Я использую классФункция в C++, который может либо вернуть что-то, или ничего
class list
{
int val;
list *next;
}
Я хочу, чтобы перегрузить оператор []. Это то, что я придумал:
int & operator [](int n)
{
list *p;
p=this;
for(int i=0; i<n; i++)
{
p=p->next;
if(p==NULL)
{
cout<<"Index out of range ";
return ?? ;
}
}
return p->val;
}
Мне интересно знать, если есть способ не возвращать ничего в случае, если индекс находится вне диапазона, так как тип значения, возвращаемого в ИНТ &.
* «Возможно, самый элегантный и современный-cpp-way» * - Что еще более важно, это неправильный путь. Если функция не может выполнить обещание, вы делаете исключение. Не превращайте простое правило в переработанный беспорядок, используя все инструменты кровоточащего края, которые у вас есть, только потому, что вы можете. – IInspectable