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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Андрей1010
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 10
#1

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

22.01.2014, 13:23. Просмотров 313. Ответов 4
Метки нет (Все метки)

Дорого времени суток. В общем у меня такая проблемма. Есть родительский класс 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++
Как правильно вызвать конструктор вектора в данном случае? C++
Извлечь данные из xml C++
C++ Прилетают данные UTF-8, как правильно преобразовать в читабельный вид?
C++ Извлечь данные из бинарного файла
Как правильно сохранить данные массива C++
C++ Удалить данные из вектора (игра в города) - не могу понять, почему данные остаются в векторе?
C++ Как правильно копировать и добавлять вектора?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1886 / 1741 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 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
2449 / 1621 / 238
Регистрация: 24.11.2012
Сообщений: 3,988
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
Ответ Создать тему
Опции темы

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