список из объектов разных типов со строковым ключом
От: emergen  
Дата: 12.02.15 15:45
Оценка: -1
Подскажите пожалуйста, как в С++ выглядит конструкция списка объектов разных типов, так чтобы


— строковой переменной string str = "авто" должен соответствовать экземпляр объекта MyAutoObject obj1;
— строковой переменной string str = "поезда" должен соответствовать экземпляр объекта MyTrainObject obj2;
— строковой переменной string str = "самолеты" должен соответствовать экземпляр объекта MyAviaObject obj3;

и так далее...

а потом по ключевому слову находить нужный объект...

как это реализуется в С++? какими средствами?
Re: список из объектов разных типов со строковым ключом
От: Evgeny.Panasyuk Россия  
Дата: 12.02.15 15:48
Оценка:
Здравствуйте, emergen, Вы писали:

E>Подскажите пожалуйста, как в С++ выглядит конструкция списка объектов разных типов, так чтобы


Список известен во время компиляции или динамический?
Re[2]: список из объектов разных типов со строковым ключом
От: emergen  
Дата: 12.02.15 15:48
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Здравствуйте, emergen, Вы писали:


E>>Подскажите пожалуйста, как в С++ выглядит конструкция списка объектов разных типов, так чтобы


EP>Список известен во время компиляции или динамический?


динамический
Re[3]: список из объектов разных типов со строковым ключом
От: Evgeny.Panasyuk Россия  
Дата: 12.02.15 16:00
Оценка: 2 (1)
Здравствуйте, emergen, Вы писали:

E>динамический


Тогда std::unordered_map<std::string, boost::any>
Если известен набор действий которые будут совершаться над элементами, тогда вместо any можно сделать более конкретный type-erasure, например через Boost.TypeErasure, std::function или вручную. (либо же просто ООП)
Если же известен набор возможных типов, то std::unordered_map<std::string, boost::variant<MyAutoObject, MyTrainObject, MyAviaObject>>
Отредактировано 12.02.2015 16:19 Evgeny.Panasyuk . Предыдущая версия .
Re[4]: список из объектов разных типов со строковым ключом
От: Кодт Россия  
Дата: 12.02.15 16:30
Оценка: +2 :)
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Тогда std::unordered_map<std::string, boost::any>

EP>Если же известен набор действий которые будут совершаться над элементами, тогда вместо any можно сделать более конкретный type-erasure, например через Boost.TypeErasure, std::function или вручную. (либо же просто ООП)

Хороший способ запугать человека — сразу жахнуть многообразием механизмов стирания типа.
Перекуём баги на фичи!
Re[5]: список из объектов разных типов со строковым ключом
От: Evgeny.Panasyuk Россия  
Дата: 12.02.15 16:45
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Хороший способ запугать человека — сразу жахнуть многообразием механизмов стирания типа.


А как быть-то? Простого и универсального dynamic нет.
По-хорошему тема тянет на целый guide.
Re: список из объектов разных типов со строковым ключом
От: VladFein США  
Дата: 12.02.15 16:59
Оценка:
Здравствуйте, emergen, Вы писали:

E>а потом по ключевому слову находить нужный объект...


E>как это реализуется в С++? какими средствами?


Изобретаете полиморфизм?
Re[2]: список из объектов разных типов со строковым ключом
От: emergen  
Дата: 12.02.15 18:59
Оценка:
Здравствуйте, VladFein, Вы писали:

VF>Здравствуйте, emergen, Вы писали:


E>>а потом по ключевому слову находить нужный объект...


E>>как это реализуется в С++? какими средствами?


VF>Изобретаете полиморфизм?



Если СТАТИЧЕСКИЙ СЛУЧАЙ а не ДИНАМИЧЕСКИЙ!!!
Re[6]: список из объектов разных типов со строковым ключом
От: VladFein США  
Дата: 12.02.15 19:17
Оценка: :)))
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Простого и универсального dynamic нет.


Занятный каламбур по этой ссылке:
class ExampleClass
{
    static dynamic field;
Re: список из объектов разных типов со строковым ключом
От: __kot2  
Дата: 12.02.15 19:55
Оценка: +1
Здравствуйте, emergen, Вы писали:
E>как это реализуется в С++? какими средствами?
что-то у меня ощущени, что вы решаете задачу, которой нет. зачем вам оно вообще?
Re: список из объектов разных типов со строковым ключом
От: jazzer Россия Skype: enerjazzer
Дата: 13.02.15 02:15
Оценка:
Здравствуйте, emergen, Вы писали:

E>Подскажите пожалуйста, как в С++ выглядит конструкция списка объектов разных типов, так чтобы



E>- строковой переменной string str = "авто" должен соответствовать экземпляр объекта MyAutoObject obj1;

E>- строковой переменной string str = "поезда" должен соответствовать экземпляр объекта MyTrainObject obj2;
E>- строковой переменной string str = "самолеты" должен соответствовать экземпляр объекта MyAviaObject obj3;

Типы совсем разные или у них все же есть общий базовый класс типа MyTransportObject?
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re: список из объектов разных типов со строковым ключом
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 13.02.15 07:04
Оценка: 2 (1)
Здравствуйте, emergen, Вы писали:

E>как это реализуется в С++? какими средствами?

std::map
Sic luceat lux!
Re[3]: список из объектов разных типов со строковым ключом
От: VladFein США  
Дата: 13.02.15 14:22
Оценка:
Здравствуйте, emergen, Вы писали:

VF>>Изобретаете полиморфизм?


E>Если СТАТИЧЕСКИЙ СЛУЧАЙ а не ДИНАМИЧЕСКИЙ!!!


Ваше возмущение непонятно.
"Если" — то...???
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.