The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Конструктор копирования: как вручную не копировать все свойства"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Изначальное сообщение [ Отслеживать ]

"Конструктор копирования: как вручную не копировать все свойства"  +/
Сообщение от xintrea (??) on 24-Авг-15, 16:10 
Есть класс с большим количеством свойств. Нужно сделать для него конструктор копирования.

В моем случае, основное назначение конструктора копирования - это чтобы во включенных классах (несколько свойств у меня являются классами) обновить указатели на данный копируемый объект. Если этого не сделать, включенные классы будут хранить некорректные ссылки на размещение исходного объекта, а не скопированного.

Обычных свойств, которые просто копируются - много. А свойств-классов с обратными ссылками - пара штук.

Вопрос. Есть ли какая-нибудь возможность в конструкторе копирования одной командой скопировать все свойства, чтобы после нее прописать команды обновления ссылок?

Или нужно прописывать копирование каждого свойства отдельно, а потом еще все время следить, чтобы в случае изменения класса (добавления свойств) добавляемые свойства были обработаны в конструкторе копирования?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "Конструктор копирования: как вручную не копировать все свойства"  +/
Сообщение от fintank (ok) on 24-Авг-15, 17:45 
>[оверквотинг удален]
> классах (несколько свойств у меня являются классами) обновить указатели на данный
> копируемый объект. Если этого не сделать, включенные классы будут хранить некорректные
> ссылки на размещение исходного объекта, а не скопированного.
> Обычных свойств, которые просто копируются - много. А свойств-классов с обратными ссылками
> - пара штук.
> Вопрос. Есть ли какая-нибудь возможность в конструкторе копирования одной командой
> скопировать все свойства, чтобы после нее прописать команды обновления ссылок?
> Или нужно прописывать копирование каждого свойства отдельно, а потом еще все время
> следить, чтобы в случае изменения класса (добавления свойств) добавляемые свойства были
> обработаны в конструкторе копирования?

Запилить базовый класс, куда вынести все автоматом копируемые свойства. В дочернем оставить пару ссылок (указателей). В конструкторе дочернего вызвать сначала конструктор базового, а потом написать код про копирование ссылок/указателей.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Конструктор копирования: как вручную не копировать все свойства"  +/
Сообщение от аНонИМММ on 27-Авг-15, 13:09 
не надо ничего писать, он автоматически сгенерируется компилятором
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру