| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Перегрузка `operator[]` для файла. |
| Автор: andrew_121 31.1.2009, 12:06 |
| Дарова! Вопрос в следующем: Есть класс File, и метод operator[] (int). Могу перегрузить его либо для чтения. Класс File оперирует записями типа int. |
| Автор: pan2004 31.1.2009, 12:26 |
у меня такое впечатление, что ты не закончил свою мысль) |
| Автор: vinter 31.1.2009, 12:29 |
возвращай ссылку на внтуренний элемент, вот тебе и будет read\write |
| Автор: andrew_121 31.1.2009, 12:33 | ||
Простите. Уточняю...
С этим проблем нет. Но как его перегрузить чтоб можно было изменять значения? |
| Автор: pan2004 31.1.2009, 12:37 |
таким макаром, наверно - никак. Самый простой способ - считай файл вначале полностью в память(в конструкторе), а потом возвращай ссылки на нужные участки файла(элементы массива)... |
| Автор: andrew_121 31.1.2009, 12:55 |
Это невозможно. Исключено!!! |
| Автор: pan2004 31.1.2009, 13:07 | ||
Тогда остается только сложный способ - возвращай объект-посредник, который и будет менять значение по требованию. Можно сделать его и так, что его использование станет вполне прозрачным. например:
для этого достаточно перегрузить operator=(int); |
| Автор: andrew_121 31.1.2009, 13:15 |
| pan2004, Не понял... |
| Автор: pan2004 31.1.2009, 13:35 | ||
Примерно так:
|
| Автор: andrew_121 31.1.2009, 13:48 |
| pan2004, Ага... Так operator= (int) нужно перегрузить во вспомогателе... ))) Понял. Щас попробую. Спасибо! |
| Автор: andrew_121 31.1.2009, 14:46 |
| Всем спасибо. Все получилось. Тема закрыта. |
| Автор: just_geek 31.1.2009, 23:39 | ||
типа того |