![]() |
|
|
![]()
|
|
| N20 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 5.1.2012 Репутация: нет Всего: нет |
Доброго времени суток. Помогите пожалуйста с такой задачей. Нужно создать контейнер типа лист в котором будут храниться указатели на объекты моего класса. Организовать добавление и вывод их на экран. Я столкнулся с проблемой, что при использовании данного кода во все объекты, начиная со ВТОРОГО, сохраняется одна и та же информация, при чем та что вводилась мною для последнего объекта. Пожалуйста, объясните почему так происходит, и помогите это исправить. Заранее благодарен.
|
|||
|
||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: нет Всего: 32 |
Функция mr_string() возвращает объект в стеке, ты берёшь его адрес и пихаешь в лист. Естественно, что стек затерается. Для хранения списка указателей на объекты нужно хранить также и сами объекты, а ты их теряешь.
-------------------- ![]() |
|||
|
||||
| Cheloveck |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: нет Всего: 32 |
Как-то так. Лямбды и for_each можно заменить на старый добрый for по итераторам, если юзаешь C++ отличный от прошлогоднего стандарта. Можно обойтись и без массива, тогда указатель в листе будет единственным на объект и его важно будет не потерять.
Если лямбды совсем не понятны, то второй вариант без них будет выглядить так
Если между последними двумя циклами ничего делать не нужно, их можно объединить. Это сообщение отредактировал(а) Cheloveck - 5.1.2012, 17:37 -------------------- ![]() |
||||||
|
|||||||
| N20 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 5.1.2012 Репутация: нет Всего: нет |
Спасбо большое, очень помогли.
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |