![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| pablo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 12.2.2005 Где: Вильнюс, Литва Репутация: 4 Всего: 6 |
Дорогие коллеги вот такая проблема возникла и меня: Появилась необходимость создания библиотеки потоков ввода вывода, т.е отделить форматированный ввод/вывод С++ от неформатированного подобно тому, как это сделанно в Яве. Как лучше сформировать библиотеку ? Т.е какую иерархию классов создавать, и какие методы описывать ? Заранее спасибо. -------------------- Первый блин всегда похож на сферу, иногда бывает и куб. |
|||
|
||||
| Олег М |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 10.6.2004 Где: Москва Репутация: 7 Всего: 7 |
|
|||
|
||||
| pablo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 12.2.2005 Где: Вильнюс, Литва Репутация: 4 Всего: 6 |
А потому что cin/cout выводят форматированно, например целые числа и т.п так и неформатированно байты.
В яве же для таких целей есть отдельные классы. -------------------- Первый блин всегда похож на сферу, иногда бывает и куб. |
|||
|
||||
| Hroft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 20.10.2003 Где: Москва Репутация: нет Всего: 3 |
Ну сделай по две оболочки над cin и cout - одна для форматированного, другая нет...
|
|||
|
||||
| pablo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 12.2.2005 Где: Вильнюс, Литва Репутация: 4 Всего: 6 |
Проблема не в том как ето сделать, а как правильно спроетировать, т.е как правильно организовать библиотеку.
Какие классы создавать как базовые, какие как конкретные и порождённые от базовых, и какие методы в них делать виртуальными. У меня есть парочка идей, но мне интересно ваше мнение. -------------------- Первый блин всегда похож на сферу, иногда бывает и куб. |
|||
|
||||
| Hroft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 20.10.2003 Где: Москва Репутация: нет Всего: 3 |
А какова в Яве иерархия? Может, как там сделать?
Может, например, в Бусте за тебя это сделано уже, не смотрел? А лично мое мнение такое - какая еще иерархия, если ты будешь пользовать УЖЕ СОЗДАННЫЕ ОБЪЕКТЫ cin и cout? Или не будешь? |
|||
|
||||
| np9mi7 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 17.8.2003 Где: Volgograd, Russia Репутация: 5 Всего: 10 |
выкладывай идеи
|
|||
|
||||
| Олег М |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 10.6.2004 Где: Москва Репутация: 7 Всего: 7 |
Задача форматированного вывода - преобразовать входные значения в какй-то формат, например, в строку. Потом результат выводится через обычный неформатированный вывод. Непонятно, зачем нужен класс для форматированного вывода. Класс можно сделать один, с различными методами. Что, собственно говоря и сделано. А у тебя какие идеи, интересно? |
|||
|
||||
| pablo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 12.2.2005 Где: Вильнюс, Литва Репутация: 4 Всего: 6 |
Нет не буду. Втом то и трабла, что надо своё сделать.
У меня идея вот какая: Создать свой класс FormatedStream и NotFormatedStream порожденные от базового класс Stream Создать и переопределить методы write i read и из классов FormatedStream и NotFormatedStream породить по FileFormatedStream и FileNotFormatedStream, MemoryFormatedStream и MemoryNotFormatedStream. -------------------- Первый блин всегда похож на сферу, иногда бывает и куб. |
|||
|
||||
| np9mi7 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 17.8.2003 Где: Volgograd, Russia Репутация: 5 Всего: 10 |
да напиши ты кусок кода....
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |