Название: Оператор [] вместо get/set [РЕШЕНО] Отправлено: Igors от Апрель 13, 2012, 12:14 Добрый день
Есть структура с методами get/set Код Хотелось бы иметь возможность писать так Код Ссылки на int я не имею, понимаю что не могу взять адрес от такого "элемента" - ничего, обойдусь, мне бы просто присваивание удобно писать в стиле массива, а не размазывать set. Как это сделать? Спасибо Название: Re: Оператор [] вместо get/set Отправлено: m_ax от Апрель 13, 2012, 12:34 А как у Вас set и get реализованы?
И что значит: Цитировать Ссылки на int я не имею, понимаю что не могу взять адрес от такого "элемента"... ?Название: Re: Оператор [] вместо get/set Отправлено: Bepec от Апрель 13, 2012, 12:48 Эммм... а что мешает оператор индексации переопределить?
И что скрывается за ... в структуре? В чём хранишь значения? Название: Re: Оператор [] вместо get/set Отправлено: Igors от Апрель 13, 2012, 14:22 А как у Вас set и get реализованы? И что скрывается за ... в структуре? В чём хранишь значения? Да все что угодно, важно что "не int", поэтому переопределить [] по известным образцам я не могу, т.к. не на что вернуть ссылку. НапрКод
Название: Re: Оператор [] вместо get/set Отправлено: Blackwanderer от Апрель 13, 2012, 14:33 тут без set'а не получится: нужно присваивать двум переменным за раз.
Название: Re: Оператор [] вместо get/set Отправлено: m_ax от Апрель 13, 2012, 14:36 тут без set'а не получится: нужно присваивать двум переменным за раз. Да в принципе можно) Только это будет совсем не тривиально и как законный вопрос - оно вообще надо?Другой вариант.. Организовать массив с элементами std::complex<double>... Хотя, наверно это предлагать бесполезно) Потом выясниться, что там вообще всё что угодно может быть.. и .т.д. и т.п. ) Название: Re: Оператор [] вместо get/set Отправлено: ddrtn от Апрель 13, 2012, 14:39 Код: class CArray Название: Re: Оператор [] вместо get/set Отправлено: m_ax от Апрель 13, 2012, 14:45 Код: class CArray Название: Re: Оператор [] вместо get/set Отправлено: sudo от Апрель 13, 2012, 14:55 Я тут набросал примитивный вариантик :)
Код
Только на интах, а не на сайз_т, как-то само так получилось :D Ну и с проектом не заморачивался Название: Re: Оператор [] вместо get/set Отправлено: sudo от Апрель 13, 2012, 14:59 А как у Вас set и get реализованы? И что скрывается за ... в структуре? В чём хранишь значения? Да все что угодно, важно что "не int", поэтому переопределить [] по известным образцам я не могу, т.к. не на что вернуть ссылку. НапрКод
А вот с таким что делать, надо думать... Название: Re: Оператор [] вместо get/set Отправлено: Igors от Апрель 13, 2012, 15:05 Код: class CArray ...и как законный вопрос - оно вообще надо? Ну я же Вас не спрашиваю, зачем/кому нужна Ваша реализация слот/сигнал. Потому что понимаю что интересно "как это сделать", а применения найдутся (обычно уже есть)Никто не утверждает что так "надо делать". Но есть случаи когда такая конструкция была бы удобной/полезной. Особенно при шаблонизировании (столь любимом некоторыми из нас) Название: Re: Оператор [] вместо get/set Отправлено: m_ax от Апрель 13, 2012, 15:27 Всё гениальное - просто)
Код Это для записи. Для чтения почти аналогично пишется) Название: Re: Оператор [] вместо get/set Отправлено: m_ax от Апрель 13, 2012, 16:51 Да, сорри) Мой вариант выше - это плохое решение(( Так делать нельзя(
Название: Re: Оператор [] вместо get/set Отправлено: kamre от Апрель 13, 2012, 17:52 Как это сделать? Можно через промежуточный класс: Код: #include <iostream> Название: Re: Оператор [] вместо get/set Отправлено: Igors от Апрель 13, 2012, 18:14 Можно через промежуточный класс: Все четко. СпасибоНазвание: Re: Оператор [] вместо get/set [РЕШЕНО] Отправлено: whitecemetery от Апрель 26, 2012, 13:26 Ух, красота. =)
|