Здравствуйте, sanx, Вы писали:
S>Не понимаю, почему просто не разрушать объект, вызывая его деструктор, и после вызывать конструктор копирования. Зачем нужно переопределять оператор "="? Понимаю еще "=+" и подобные. Но просто "=" — это же по сути отказ от старого объекта? Тем более что разумно автоматически возвращать сам этот объект в операторе "=", а с этим компилятор должен справиться без проблем. То есть 1) Разрушаем старый объект, 2) Вызываем нужный конструктор копирования, 3) Если нужно, возвращаем новый объект (если у нас a = b = c). Почему же тогда не так?
потому что в общем случае убить и создать дороже, чем скопировать.
Например, у тебя уже выделена память — и что, ее грохать и выделять по новой?