11 / 0 / 0
Регистрация: 02.06.2015
Сообщений: 24
|
|||||||||||
1 | |||||||||||
Копирование списка указателей на виртуальный класс12.08.2015, 19:42. Показов 1409. Ответов 3
Метки нет (Все метки)
Добрый день!
Подскажите, пожалуйста. Имею примерно такой код
Мне необходимо корректно организовать конструктор копирования класса С, таким образом, что бы все правильно сохранилось, в т. ч. члены классов А и В, которые не являются членами класса Abstract. Я вижу единственный вариант - по какому-то полю type определять тип какой это класс А или В, создавать временную переменную соответствующего класса, копировать из поля list действующего класса, потом ее добавлять в list нового объекта. Что-то вроде такого в конструкторе С (конструкторы копирования А и В реализованы):
Может существует более правильный способ?
0
|
12.08.2015, 19:42 | |
Ответы с готовыми решениями:
3
Как создать класс со вложенной структурой указателей на класс? Копирование указателей Виртуальный базовый класс Виртуальный класс. Сигналы |
18844 / 9843 / 2408
Регистрация: 30.01.2014
Сообщений: 17,284
|
|||||||||||
12.08.2015, 19:53 | 2 | ||||||||||
Сообщение было отмечено RidgeA как решение
Решение
Cделать копирующую виртуальную функцию clone(). В каждом наследнике переопределить на копирование соответствующего типа. В классе С просто пробежаться по списку, вызвая clone, результат сохранить в новый список.
Есть такой паттерн: https://en.wikibooks.org/wiki/... onstructor Добавлено через 4 минуты Приближенный пример
1
|
11 / 0 / 0
Регистрация: 02.06.2015
Сообщений: 24
|
||||||
12.08.2015, 19:54 [ТС] | 3 | |||||
Т. е. примерно так, если я правильно понял?
0
|
18844 / 9843 / 2408
Регистрация: 30.01.2014
Сообщений: 17,284
|
|
12.08.2015, 19:55 | 4 |
Нет, не совсем. Я обновил предыдущий пост, добавил пример.
Конструктор копирования у классов А и В используется стандартный. Вся суть в функции clone.
1
|
12.08.2015, 19:55 | |
12.08.2015, 19:55 | |
Помогаю со студенческими работами здесь
4
Указатель на виртуальный класс Виртуальный абстрактный класс Базовый виртуальный класс Класс работник. Виртуальный метод Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |