2015-03-26 2 views
-3

Я определил класс V_class, который имеет следующие частные поля: int * array; int size;Как перегрузить [] оператор в C++?

Позвольте определить V_class var;

Я хочу перегрузить [] оператор, чтобы получить доступ к элементу var.array [index], когда я пишу var [index]. Мне удалось это сделать, но я должен сделать другое: мой метод также должен работать, когда я хочу написать var [index] = a_number.

Может ли кто-нибудь помочь мне, пожалуйста?

+0

В чем проблема, с которой вы столкнулись? –

+1

Вы пробовали посмотреть на интерфейс таких классов, как ['std :: vector'] (http://en.cppreference.com/w/cpp/container/vector/operator_at)? – Angew

+0

Я не знаю, как это сделать var [index] = a_number – pkenobi23

ответ

2

Если вы вернете объект по ссылке, назначение будет работать. Смотрите, как std::vector или другой стандартный контейнер.

Также не забудьте указать как const, так и не const версии вашего оператора.

+0

Это сработало, спасибо – pkenobi23

Смежные вопросы