| Название: Оператор [] вместо 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 Ух, красота. =) |