crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> C++: как выбрать тип переменной во время выполнения?
mezmay
  опции профиля:
сообщение 21.7.2009, 9:28
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

Спасибо сказали: 16 раз(а)




Репутация:   1  


Проблема такая: хочу создать класс для обработки массивов чисел. Элементами могут быть вещественный или комплексный short, int, float, double. Программа должна работать примерно так: открываю файл, выбираю тип данных (например, комплексный float) и делаю необходимые преобразования массивов. Вопрос: как хранить прочитанный массив в классе? если например создать поле void *data и после открытия делать myObject.data = new scplx[n]; - то как передавать тип в методы? можно конечно создать enum types{ INT, FLOAT, ...} и в каждом методе делать switch (TYPE){ case INT: ..... case FLOAT: ...} но так слишком много case'ов придется везде вставлять. Есть ли какое-то нормальное решение этой проблемы?

вроде бы для подобных целей существуют шаблоны, но опять же - как задать шаблону тип во время выполения?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
igor_bogomolov
  опции профиля:
сообщение 21.7.2009, 19:17
Сообщение #2


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


mezmay,
Цитата(mezmay @ 21.7.2009, 14:46) *
а что скажите о его книге: «Современное проектирование на С++: Обобщенное программирование и прикладные шаблоны проектирования» - хорошая?
Как сказал Kwisp, зависит от уровня читателя. Я так же пытаюсь ее освоить. Мозги скрипят, аж до соплей прошибает. Тяжело дается освоение. Но в отличае от GoF, с ее помощью я действительно продвинулся в решении своей задачи (см. соседнюю тему)

По вопросу вобщемто уже все подсказали. См. 8 главу книги Александреску -"Фабрики объектов". Там как раз описывается то что ищешь.

Сообщение отредактировал igor_bogomolov - 21.7.2009, 19:23
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- mezmay   C++: как выбрать тип переменной во время выполнения?   21.7.2009, 9:28
- - AD   насколько я знаю, эту проблему можно решить ДАЖЕ н...   21.7.2009, 9:38
- - kwisp   AD скорее всего правильный путь тебе указал. Цита...   21.7.2009, 10:02
- - mezmay   а что скажите о его книге: «Современное проектиров...   21.7.2009, 13:46
|- - AD   Цитата(mezmay)а что скажите о его книге: «Современ...   21.7.2009, 14:04
- - kwisp   я думаю что да - хорошая, но зависит от уровня под...   21.7.2009, 13:53
- - D_K   mezmay, а как собираешься использовать сие творен...   21.7.2009, 15:20
- - igor_bogomolov   mezmay, Цитата(mezmay @ 21.7.2009, 14:46)...   21.7.2009, 19:17
|- - AD   Цитата(igor_bogomolov @ 21.7.2009, 20:17)...   21.7.2009, 19:26
|- - AD   По иронии судьбы, встала та же задача, только типы...   27.7.2009, 21:04
|- - Andrew Selivanov   Цитата(AD @ 27.7.2009, 22:04) По иронии с...   28.7.2009, 16:05
|- - AD   Цитата(Andrew Selivanov @ 28.7.2009, 17:0...   28.7.2009, 17:00
- - Tonal   2 AD Всё бы тебе на лисапедах ездить. Boost.Any B...   28.7.2009, 10:43
|- - AD   Цитата(Tonal @ 28.7.2009, 11:43) 2 AD Всё...   28.7.2009, 10:49
- - Влад   Ну, а что здесь непонятного? Вот тебе пример, в ос...   29.7.2009, 10:25
|- - AD   По мере чтения Александреску возник следующий вопр...   4.8.2009, 9:20
- - Tonal   Всё есть.   4.8.2009, 10:35
- - Влад   Хмм..... Обоснуешь?   4.8.2009, 11:52
- - AD   Цитата(Влад @ 4.8.2009, 12:52) Хмм..... О...   4.8.2009, 11:57
- - AD   Покопался в бусте. Фабрики, одиночки, команды(функ...   4.8.2009, 12:39


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.4.2024, 4:21