Пример:
class IClass
{
public:
IClass& operator[] (int index) {}
};
class B : public IClass
{
public:
IClass& operator[] (int index) { return this*; }
};
Хочется так сделать. Но что-то подсказывает что не стоит.
Помогите определиться.
PS. А хочется так потому что есть желание писать obj[i],
а не obj->operator[](i).
Можно конечно указатель превратить в ссылку.
Но с другой стороны, если объекта по данному индексу не
окажется, то что возвращать? Как вариант можно вернуть
ссылку на "пустой" объект, а можно возбудить исключение.
Чем вообще грозит такой подход с ссылками в таком контексте?
Спасибо.