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

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

Войти
Регистрация
Восстановить пароль
 
freakz
2 / 2 / 0
Регистрация: 25.09.2011
Сообщений: 22
#1

Копирование содержимого контейнера map - C++

14.11.2013, 19:59. Просмотров 562. Ответов 3
Метки нет (Все метки)

Итак, есть контейнер map<string,fsElem *>, где fsElem - базовый класс, также есть наследуемый от него класс catalog.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class catalog:public fsElem {
private:
    int address;
    catalogStruct *catalogStructure;
    catalog *parentCatalog;
public:
    catalog(const catalog& orig);
};
 
class catalogStruct{
private:
    map<string,fsElem *> structTable;
};
 
class fsElem {
private:
    unsigned char access;
    int size;
};
При копировании класса catalog, которое отрабатывает копирующий конструктор, например, необходимо полностью скопировать содержимое контейнера. Проблема в том, что если просто иметь map<string,fsElem *> ob1,ob2 и сделать ob2=ob1 , то скопируются лишь ссылки на базовый класс, а необходимо независимо скопировать содержимое fsElem * , где, скорее всего, будет ссылка на базовую часть объекта типа catalog. Вызываются ли при ob2=ob1 копирующие конструкторы или операторы присваивания для содержимого контейнера, и как в моем случае правильно копировать классы? Спасибо

Добавлено через 18 часов 49 минут
уважаемые форумчане, кто-нибудь знает ответ на мой вопрос?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2013, 19:59     Копирование содержимого контейнера map
Посмотрите здесь:

Вывод контейнера map C++
Вывод содержимого map C++
C++ Использование контейнера map
C++ Разработка контейнера типа Карта (Map)
C++ Вывод содержимого map
Перемещение содержимого одного контейнера в другой C++
Заполнение контейнера map из файла без цикла C++
Не получается вывести и удалить последний элемент контейнера map C++
Объясните код заполнения контейнера map C++
Чтение из файла и заполнение контейнера map C++
Объясните пример с decltype, инициализацией контейнера map, по работе for_each и copy C++
Удалить элементы из контейнера map C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12501 / 7063 / 793
Регистрация: 27.09.2012
Сообщений: 17,447
Записей в блоге: 2
Завершенные тесты: 1
14.11.2013, 20:20     Копирование содержимого контейнера map #2
Можно, например, написать для этого свой функцию копирования, а можно, например, обернуть указатель fsElem так, что при копировании будет именно то что нам нужно, в общем возможности широки
freakz
2 / 2 / 0
Регистрация: 25.09.2011
Сообщений: 22
14.11.2013, 20:29  [ТС]     Копирование содержимого контейнера map #3
А что понимается под словом "обернуть"? А можно ли перегрузить оператор присваивания для контейнера, мб так будет удобнее?
Aloir
 Аватар для Aloir
216 / 216 / 13
Регистрация: 17.12.2010
Сообщений: 689
14.11.2013, 21:07     Копирование содержимого контейнера map #4
сделать класс/функцию которая облегчает работу с чем-то или вносит свою спецификацию
Yandex
Объявления
14.11.2013, 21:07     Копирование содержимого контейнера map
Ответ Создать тему
Опции темы

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