Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по проектированию. 
:(
    Опции темы
pablo
Дата 30.3.2005, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 12.2.2005
Где: Вильнюс, Литва

Репутация: 4
Всего: 6




Дорогие коллеги вот такая проблема возникла и меня:

Появилась необходимость создания библиотеки потоков ввода вывода, т.е отделить форматированный ввод/вывод С++ от неформатированного подобно тому, как это сделанно в Яве.
Как лучше сформировать библиотеку ? smile

Т.е какую иерархию классов создавать, и какие методы описывать ? smile

Заранее спасибо.



--------------------
Первый блин всегда похож на сферу, иногда бывает и куб.
PM MAIL ICQ   Вверх
Олег М
Дата 30.3.2005, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 10.6.2004
Где: Москва

Репутация: 7
Всего: 7



Цитата(pablo @ 30.3.2005, 20:21)
Появилась необходимость создания библиотеки потоков ввода вывода, т.е отделить форматированный ввод/вывод С++ от неформатированного подобно тому, как это сделанно в Яве.
А как сделано в яве, и почему ты решил, что в С++ форматированный ввод/вывод неотделён от неформатированного?
PM MAIL ICQ   Вверх
pablo
Дата 31.3.2005, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 12.2.2005
Где: Вильнюс, Литва

Репутация: 4
Всего: 6



А потому что cin/cout выводят форматированно, например целые числа и т.п так и неформатированно байты.
В яве же для таких целей есть отдельные классы.


--------------------
Первый блин всегда похож на сферу, иногда бывает и куб.
PM MAIL ICQ   Вверх
Hroft
Дата 31.3.2005, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 20.10.2003
Где: Москва

Репутация: нет
Всего: 3



Ну сделай по две оболочки над cin и cout - одна для форматированного, другая нет...
PM MAIL ICQ   Вверх
pablo
Дата 31.3.2005, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 12.2.2005
Где: Вильнюс, Литва

Репутация: 4
Всего: 6



Проблема не в том как ето сделать, а как правильно спроетировать, т.е как правильно организовать библиотеку.
Какие классы создавать как базовые, какие как конкретные и порождённые от базовых, и какие методы в них делать виртуальными.
У меня есть парочка идей, но мне интересно ваше мнение.


--------------------
Первый блин всегда похож на сферу, иногда бывает и куб.
PM MAIL ICQ   Вверх
Hroft
Дата 31.3.2005, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 20.10.2003
Где: Москва

Репутация: нет
Всего: 3



А какова в Яве иерархия? Может, как там сделать?
Может, например, в Бусте за тебя это сделано уже, не смотрел?

А лично мое мнение такое - какая еще иерархия, если ты будешь пользовать УЖЕ СОЗДАННЫЕ ОБЪЕКТЫ cin и cout? Или не будешь?
PM MAIL ICQ   Вверх
np9mi7
Дата 31.3.2005, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 553
Регистрация: 17.8.2003
Где: Volgograd, Russia

Репутация: 5
Всего: 10



выкладывай идеи


--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
Олег М
Дата 31.3.2005, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 10.6.2004
Где: Москва

Репутация: 7
Всего: 7



Цитата(pablo @ 31.3.2005, 13:18)
Проблема не в том как ето сделать, а как правильно спроетировать, т.е как правильно организовать библиотеку.
Какие классы создавать как базовые, какие как конкретные и порождённые от базовых, и какие методы в них делать виртуальными.
У меня есть парочка идей, но мне интересно ваше мнение.

Задача форматированного вывода - преобразовать входные значения в какй-то формат, например, в строку. Потом результат выводится через обычный неформатированный вывод. Непонятно, зачем нужен класс для форматированного вывода. Класс можно сделать один, с различными методами. Что, собственно говоря и сделано.
А у тебя какие идеи, интересно?
PM MAIL ICQ   Вверх
pablo
Дата 31.3.2005, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 12.2.2005
Где: Вильнюс, Литва

Репутация: 4
Всего: 6



Нет не буду. Втом то и трабла, что надо своё сделать. smile
У меня идея вот какая:

Создать свой класс FormatedStream и NotFormatedStream порожденные от базового класс Stream
Создать и переопределить методы write i read и из классов FormatedStream и NotFormatedStream
породить по FileFormatedStream и FileNotFormatedStream, MemoryFormatedStream и MemoryNotFormatedStream.



--------------------
Первый блин всегда похож на сферу, иногда бывает и куб.
PM MAIL ICQ   Вверх
np9mi7
Дата 31.3.2005, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 553
Регистрация: 17.8.2003
Где: Volgograd, Russia

Репутация: 5
Всего: 10



да напиши ты кусок кода.... smile


--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0752 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.