0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 27
1

Присваивание объекта без переопределенной операции =. Каковы последствия?

27.12.2014, 20:37. Показов 915. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите ответить. Что происходит при присваивании одного объекта другому (без переопределенной операции =) и какие побочные эффекты могут возникнуть?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.12.2014, 20:37
Ответы с готовыми решениями:

Передача операнда внутри переопределенной операции
Здравствуйте. Пытаюсь разобраться с перегрузкой операций для классов, и вот в чем проблема: Есть...

Каковы отрицательные последствия уменьшения проектных норм?
Каковы отрицательные последствия уменьшения проектных норм?

Каковы последствия установки сгоревшего (возможно) процессора в рабочую материнку?
У меня есть процессор AMD Athlon II X2 Dual-Core (возможно сгоревший). И возник вопрос что будит...

Присваивание объекта
На php.net написано: Код:<?php $instance = new SimpleClass(); $assigned = $instance;...

3
125 / 125 / 44
Регистрация: 05.10.2013
Сообщений: 462
27.12.2014, 21:23 2
asemvip, при это получим, что оба объекта (их будет один), ссылаются на один участок памяти. Изменение любого из объектов изменит и второй.
0
Неэпический
17815 / 10586 / 2044
Регистрация: 27.09.2012
Сообщений: 26,627
Записей в блоге: 1
27.12.2014, 21:25 3
Цитата Сообщение от asemvip Посмотреть сообщение
Что происходит при присваивании одного объекта другому
будет вызван деволтный оператор присваивания.
Цитата Сообщение от asemvip Посмотреть сообщение
и какие побочные эффекты
никаких. а если неправильно использовать, то можно и ногу отстрелить

Добавлено через 54 секунды
Цитата Сообщение от HenryDukart Посмотреть сообщение
при это получим, что оба объекта (их будет один), ссылаются на один участок памяти.
с какого перепугу? Просто будет вызван оператор присваивания для соответствующих членов-данных, а остальное зависит от них.
0
Эксперт С++
3222 / 1749 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
28.12.2014, 09:55 4
Цитата Сообщение от asemvip Посмотреть сообщение
Что происходит при присваивании одного объекта другому (без переопределенной операции =)
Вызывается неявный оператор копирующего присваивания, который делает следующее:
1) Вызывает операторы копирующего присваивания базовых классов, в том числе виртуальных;
2) Почленно копирует все нестатические члены-данные класса. Для членов, являющихся объектами классов, вызываются их операторы копирующего присваивания, а остальные копируются побитово.
Цитата Сообщение от asemvip Посмотреть сообщение
и какие побочные эффекты могут возникнуть?
Если среди членов-данных имеются указатели на некие объекты, то скопируются не эти объекты, а указатели на них, т.е. получится, что два указателя указывают на один и тот же объект.
Если такой класс не имеет явного деструктора, то при уничтожении его объекта память, на которую указывают члены-указатели, не будет освобождена. Если же имеется явный деструктор, освобождающий память, на которую указывают члены-указатели, то при уничтожении объекта-оригинала и объекта-копии произойдет попытка дважды освободить один и тот же участок памяти, что запрещено стандартом.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.12.2014, 09:55
Помогаю со студенческими работами здесь

Последствия изменения свойства ItemIndex у объекта ComboBox
Как я понял, после присваивания свойству ItemIndex значения -1 объекта ComboBox сбрасывается...

Присваивание объекта класса ofstream
Задача стоит в том, что нужно передать объект класса ofstream конструктору анонимного объекта...

Присваивание объекта базового класса наследуемому
Тут используется библиотека Qt, но вопрос не по ней, тему переносить не стоит! Суть в том, что я...

Присваивание переменной GameObject значение объекта gamejObject
Здравствуйте, пишу игру с генерируемым миром и хочу что-бы объекты при инициализации заполняли...

Устранить последствия BSOD без переустановки и восстановления
Здравствуйте, уважаемые! Очень остро встал вопрос о восстановлении служб и опций, после того как...

Присваивание объектов одного типа между собой и передача объекта в функцию по значению
При первом знакомстве с С++ усиленно не могу понять вот такие моменты : 1. Имеем вот такой код : ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru