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

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

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

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

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

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

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

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

Разработка контейнера типа Карта (Map) - C++
Приветсвую всех форумчан! Имеется задача разработать решение реализующее динамическую структуру данных (контейнер) типа «Карта»(map,...

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

Объясните код заполнения контейнера map - C++
1) помогите разобраться в коде, вот отрывок: for(i=0; i&lt;m; i++) { mymap.insert( make_pair((y * powmod(a, i, p) ) % p, i) ); ...

3
Croessmah
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
14.11.2013, 20:20 #2
Можно, например, написать для этого свой функцию копирования, а можно, например, обернуть указатель fsElem так, что при копировании будет именно то что нам нужно, в общем возможности широки
1
freakz
2 / 2 / 0
Регистрация: 25.09.2011
Сообщений: 22
14.11.2013, 20:29  [ТС] #3
А что понимается под словом "обернуть"? А можно ли перегрузить оператор присваивания для контейнера, мб так будет удобнее?
0
Aloir
218 / 218 / 13
Регистрация: 17.12.2010
Сообщений: 692
14.11.2013, 21:07 #4
сделать класс/функцию которая облегчает работу с чем-то или вносит свою спецификацию
1
14.11.2013, 21:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2013, 21:07
Привет! Вот еще темы с ответами:

Реализовать собственный аналог контейнера std::map - C++
Нужно реализовать собственный контейнер map. Подскажите как это вообще сделать, ибо совсем не представляю.

Заполнение контейнера map из файла без цикла - C++
В общем, вопрос следущий. Интересует, возможно ли инициализировать контейнер map, данными из файла, без использования циклов. Например,...

Не получается вывести и удалить последний элемент контейнера map - C++
Не получается вывести и удалить последний элемент контейнера map. Для первого (begin) всё работает. А для последнего (end) даже не...

Объясните пример с decltype, инициализацией контейнера map, по работе for_each и copy - C++
template&lt;class T, class U&gt; auto hellSum(const T&amp; x, const U&amp; y) -&gt; decltype(x + y) { return x + y; } Вот...


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

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

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