Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

22.01.2014, 13:23. Просмотров 356. Ответов 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. Подскажите пожалуйстакак правильно получить доступ к данным в этом векторе.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2014, 13:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как правильно извлечь данные из вектора и поместить в обект CStepMove (C++):

Как извлечь данные из pcap-файла? - C++
Как извлечь данные из pcap-файла? Всем доброго времени суток! Мне необходимо сделать программу, которая извлекает все файлы, которые...

как правильно извлечь целое число из char? у меня atoi возвращает -858993460 - C++
вот где d=atoi(Digit); Digit='2''0''1''7' , а d почему-то получается -858993460 подскажите пожалуйста как исправить баг ...

Извлечь элемент из вектора - C++
Пожалуйста, помогите разобраться. Это функция разбивки строки на лексемы, и копирования результатов разбивки в вектор. void...

Как правильно копировать и добавлять вектора? - C++
Есть вектора vect1 и vect2, содержащие, допустим, значения double: using namespace std; vector&lt;double&gt; vect1, vect2;Как...

Как правильно ввести два вектора ? - C++
надо чтобы элементы векторов вводились с клавиатуры, а у меня что-то не получается. и еще надо будет найти сумму векторов, но это я...

Как правильно вызвать конструктор вектора в данном случае? - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;map&gt; #include &lt;vector&gt; #include &lt;string&gt; using namespace std; typedef...

4
Kuzia domovenok
1952 / 1805 / 140
Регистрация: 25.03.2012
Сообщений: 6,252
Записей в блоге: 1
22.01.2014, 13:39 #2
Никак уже не достать. Ты испортил свой объект в векторе, когда сделал пушбек.
Теперь от него отрезано всё лишнее, что было в CstepMove безвозвратно!
1
Андрей1010
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 10
22.01.2014, 13:52  [ТС] #3
Подскажите тогда пожалуйста, как можно сохранять объекты разных классов (наследников одного класса) в одном месте, и вытаскивать эти объкты при необходимости?
Для этого вообще можно воспользоваться STL-библиотекой?
0
0x10
2479 / 1652 / 248
Регистрация: 24.11.2012
Сообщений: 4,095
22.01.2014, 14:26 #4
Цитата Сообщение от Андрей1010 Посмотреть сообщение
Подскажите тогда пожалуйста, как можно сохранять объекты разных классов (наследников одного класса)
Хранить в контейнере указатели на базовый класс.

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

Извлечь из вектора данные в нужном формате - C++ Builder
Приветствую. Подскажите, как из вектора извлечь данные в нужном мне формате? Например из массива BYTE нужно извлечь два последних байта в...

Как правильно занести данные из вектора и JTable ? - Java
Делаю так: vColName.addElement('1'); vColName.addElement('2'); vDat - здесь данные jTable1.setModel(new...

Не получается правильно извлечь данные из базы - PHP БД
Доброго времени суток, уважаемые форумчане. Передо мной стоит такая задача: в БД есть таблица category_ru и таблица articles. В первой...

ASP GridView как извлечь данные определенные данные из выбранной строки - C# ASP.NET
Ключевое поле извлекается легко (int ID = (int)gridEmployees.SelectedDataKey.Values;) а вот другие данные с поля не могу вытащить пишет...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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