![]() |
|
Модераторы: Poseidon |
![]()
|
|
| observateur |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 10.6.2006 Репутация: нет Всего: нет |
Допустим, мы заполняем объект этого класса данными, а затем присваиваем один класс целиком другому, используя стандартный оператор присваивания : list2=list1; Допустим, что впоследствии мы удалим объект класса list1. Можем ли мы все еще использовать list2 для доступа к введенным данным? Увы, нет, так как при удалении list1 все его ссылки были удалены. Единственное, что было объекту linklist про удаленный объект, это указатель на него. Но его удалили, указатель в list2 стал недееспособным, и все попытки получить доступ к данным приведут к получению мусора вместо данных, а в худшем случае – к зависанию программы. Один из способов избежать этих проблем- перегрузить оператор присваивания, что бы он вместе с объектом копировал бы все его ссылки. Но тогда придется пройти всей цепочке, поочередно копируя все ссылки. Как отмечалось ранее, следует также перегружать конструктор копирования. Чтобы была возможность удалять объекты linklist в main(), можно создавать их с помощью указателя и new. В таком случае проще будет проверять работу новых операций. Не переживайте, если обнаружите, что в процессе копирование порядок следования данных изменился. Понятно, что копирование всех данных не является самым эффективным решением проблемы с точки зрения экономии памяти. Но решения этого упражнения таким путем с точки зрения обучения важно. помогите мне понять суть этого упражнения.... Это сообщение отредактировал(а) alexeis1 - 4.11.2006, 01:08 |
|||
|
||||
| Rockie |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: 13 Всего: 31 |
observateur, на этом сайте есть хорошие статьи про копирующие конструкторы и не только, "Копирование и присваивание".
Это сообщение отредактировал(а) Rockie - 4.11.2006, 01:06 -------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
|||
|
||||
| Гарри |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 11.10.2006 Где: Германия Репутация: нет Всего: 1 |
Вместо того чтобы спросить напрямую, ставят перед проблемой, и разбирайся. Неотечественная постановка задачи, судя по всему?
Темы для изучения тут копи конструктор и переписывание операторов. Вот примерчик, для оператора присваивания, может быть поможет ...
Модератор: пожалуйста, выбирайте тип подсветки Это сообщение отредактировал(а) alexeis1 - 4.11.2006, 02:15 |
|||
|
||||
| observateur |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 10.6.2006 Репутация: нет Всего: нет |
||||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 23 Всего: 459 |
Можно присваивать объекты, а не классы. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| observateur |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 10.6.2006 Репутация: нет Всего: нет |
тогда у меня прозба к знатокам будьте любезны помогите мне решат эту проблему...
|
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |