Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
2 / 2 / 0
Регистрация: 25.09.2011
Сообщений: 22
1

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

14.11.2013, 19:59. Показов 1982. Ответов 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 минут
уважаемые форумчане, кто-нибудь знает ответ на мой вопрос?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.11.2013, 19:59
Ответы с готовыми решениями:

Копирование записи из одного контейнера map в другой
Добрый вечер! Помогите, пожалуйста, решить задачу. Есть два контейнера map VParke и NaMarshrute....

Из каждого элемента контейнера map вычесть среднее арифметическое контейнера
Контейнер map, тип элементов Int 3.Из каждого элемента вычесть среднее арифметическое контейнера

Вывод контейнера map
Подскажите пожалуйста как вывести на экран значение карты. Программа такая: надо создать карту, где...

Использование контейнера map
Доброе утро) Никак не пойму как пользоваться контейнером map и зачем он, вообще, нужен?! Скажем...

3
Don't worry, be happy
17172 / 10055 / 1935
Регистрация: 27.09.2012
Сообщений: 25,051
Записей в блоге: 1
14.11.2013, 20:20 2
Можно, например, написать для этого свой функцию копирования, а можно, например, обернуть указатель fsElem так, что при копировании будет именно то что нам нужно, в общем возможности широки
1
2 / 2 / 0
Регистрация: 25.09.2011
Сообщений: 22
14.11.2013, 20:29  [ТС] 3
А что понимается под словом "обернуть"? А можно ли перегрузить оператор присваивания для контейнера, мб так будет удобнее?
0
223 / 223 / 38
Регистрация: 17.12.2010
Сообщений: 713
14.11.2013, 21:07 4
сделать класс/функцию которая облегчает работу с чем-то или вносит свою спецификацию
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.11.2013, 21:07

Реализация контейнера по типу map
Необходимо создать пользовательский класс по типу map, для реализации &quot;словаря&quot;. Можете помочь с...

Удалить элементы из контейнера map
#include &lt;iostream&gt; #include &lt;map&gt; using namespace std; int main() { map&lt;int, int&gt; map1; ...

Удаление символа в элементе контейнера map
Доброго времени суток! Есть текстовый файл , его записал в map , остались элементы такого вот рода...

Вывод данных контейнера map на экран
Приветствую. Столкнулся с проблемой вывода на экран Memo информации о введенных в контейнер map...

Чтение из файла и заполнение контейнера map
Есть такое задание: дан файл,в котором записаны имена студентов.Напротив каждого имени - их...

Заполнение контейнера map объектами класса
Здравствуйте! Помогите разобраться с map. Не получается заполнить контейнер объектами класса....


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

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

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