|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.12.2012, 11:12 | #11 |
Пользователь
Регистрация: 05.12.2012
Сообщений: 67
|
Проверил. Работает хорошо, но есть одно НО: созданные в наследниках данные не копируются в объект-клон.
|
13.12.2012, 12:52 | #12 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
|
13.12.2012, 13:48 | #13 |
Пользователь
Регистрация: 05.12.2012
Сообщений: 67
|
Дело в том, что написать универсальный конструктор копирования не представляется возможным, ибо я не могу узнать, каких наследников и с какими методами/членами будут создавать пользователи/разработчики.
Есть ли способ это обойти? |
13.12.2012, 13:59 | #14 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
Ты не понял. Не нужен никакой универсальный копирующий конструктор. Более того, конструкторы - это собственность конкретных классов. Конструкторы конструируют объекты только своего собственного класс, и ни за какие другие классы они не отвечают. Тебе нужно немножко прокачать скилл по теме "полиморфизм". Вот смотри: http://ideone.com/YQhsm4 Код:
Код:
По интерфейсу он запрашивает копию объекта. Рассмотрим это более подробно: Код:
Внутри которого происходит процедура создания нового объекта в динамической памяти: Код:
То бишь, запустится метод: Concrete_Object1(const Concrete_Object1& rhs) Конкретный объект знает собственное устройство, и поэтому знает как построить себе подобного. |
|
13.12.2012, 15:52 | #15 | |
Пользователь
Регистрация: 05.12.2012
Сообщений: 67
|
Цитата:
Проблема состоит в том, что из класса-родителя я не могу "достучаться" до "наследников". |
|
13.12.2012, 16:23 | #16 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Ну и что, что шаблон? Какая разница? Менеджер оперирует объектами через интерфейс. Ему абсолютно наплевать на их фактические типы:
Код:
Код:
|
14.12.2012, 10:42 | #17 |
Пользователь
Регистрация: 05.12.2012
Сообщений: 67
|
Код:
|
16.12.2012, 00:36 | #18 |
Пользователь
Регистрация: 05.12.2012
Сообщений: 67
|
Код:
|
16.12.2012, 00:40 | #19 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Код:
Может быть ты имел ввиду: Код:
Код:
|
16.12.2012, 13:44 | #20 | |
Пользователь
Регистрация: 05.12.2012
Сообщений: 67
|
Цитата:
Код:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание экземпляра класса | biohazard120 | Общие вопросы Delphi | 11 | 15.09.2012 13:23 |
C#(перехват нового экземпляра класса StackOverflowException) | Anett// | Помощь студентам | 0 | 12.05.2011 22:26 |
Освобождение памяти от экземпляра класса | Mixim | Общие вопросы .NET | 8 | 05.01.2011 17:27 |
удаление экземпляра класса | Juffin | Общие вопросы Delphi | 5 | 02.11.2010 11:57 |
ListBox, привязка экземпляра класса к Item. Возможно ли? | Casper-SC | Общие вопросы .NET | 1 | 24.05.2010 10:40 |