Форум программистов, компьютерный форум CyberForum.ru

Как правильно извлечь данные из вектора и поместить в обект CStepMove - C++

Восстановить пароль Регистрация
 
Андрей1010
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 10
22.01.2014, 13:23     Как правильно извлечь данные из вектора и поместить в обект CStepMove #1
Дорого времени суток. В общем у меня такая проблемма. Есть родительский класс CStep. У него есть наследник CStepMove. Создаю вектор:
C++
1
2
3
  vector <CStep> ChangeBack;  
  CStepMove  B(IDList, X, Y);
  ChangeBack.push_back(B);
И добавляю в него объёкт класса CStepMove.
Вопрос состоит в следующем, подскажите как правильно извлечь данные из вектора и поместить в обект CStepMove, можно просто получить ссылку.
Один из моих вариантов был:
C++
1
      A = dynamic_cast <CStepMove*> (&ChangeBack.back());
Вариант компилится, но при выполнении операция dynamic_cast возвращает NULL, хотя только что добавлялся объект CStepMove. Подскажите пожалуйстакак правильно получить доступ к данным в этом векторе.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2014, 13:23     Как правильно извлечь данные из вектора и поместить в обект CStepMove
Посмотрите здесь:

C++ Извлечь элемент из вектора
C++ Как правильно ввести два вектора ?
C++ Как извлечь данные из pcap-файла?
Как правильно прочитать данные? C++
Как правильно занести данные в массив char и вывести их из него C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
22.01.2014, 13:39     Как правильно извлечь данные из вектора и поместить в обект CStepMove #2
Никак уже не достать. Ты испортил свой объект в векторе, когда сделал пушбек.
Теперь от него отрезано всё лишнее, что было в CstepMove безвозвратно!
Андрей1010
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 10
22.01.2014, 13:52  [ТС]     Как правильно извлечь данные из вектора и поместить в обект CStepMove #3
Подскажите тогда пожалуйста, как можно сохранять объекты разных классов (наследников одного класса) в одном месте, и вытаскивать эти объкты при необходимости?
Для этого вообще можно воспользоваться STL-библиотекой?
0x10
2426 / 1598 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
22.01.2014, 14:26     Как правильно извлечь данные из вектора и поместить в обект CStepMove #4
Цитата Сообщение от Андрей1010 Посмотреть сообщение
Подскажите тогда пожалуйста, как можно сохранять объекты разных классов (наследников одного класса)
Хранить в контейнере указатели на базовый класс.

Цитата Сообщение от Андрей1010 Посмотреть сообщение
вытаскивать эти объкты при необходимости?
Если во время выполнения нужно знать конкретный тип объекта, можно воспользоваться dynamic_cast. Но если возникает такая необходимость, лучше пересмотреть решение и не сваливать разные объекты в один контейнер.
Если же работа с ними будет только посредством вируальных функций базового класса - все в порядке.
Андрей1010
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 10
22.01.2014, 15:05  [ТС]     Как правильно извлечь данные из вектора и поместить в обект CStepMove #5
Большое спасибо! Вы мне очень помогли.
Yandex
Объявления
22.01.2014, 15:05     Как правильно извлечь данные из вектора и поместить в обект CStepMove
Ответ Создать тему
Опции темы

Текущее время: 16:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru