Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Для новичков > Функции управления перемещением |
Автор: Aoizora 9.4.2017, 14:30 | ||
Есть такой простой класс строки:
Некоторые вещи вызвали у меня недопонимание. 1. Класс я писал не полностью самостоятельно, а глядя на код из статьи, поэтому доверился чьему-то авторитету. Первое недопонимание вызвало то, что в конструкторе перемещения и в операторе присвоения при перемещении не освобождается память объекта, содержимое которого заменяется. Почему? Разве не будет утечки во всех функциях, связанных с rvalue-ссылками? 2. Почему при подборе функции во время выполнения b = a; вызывается не оператор присваивания при перемещении, а копирующий оператор присваивания? 3. И еще. Правильно ли я понимаю, что вся эта move-семантика создана только ради того, чтобы в зависимости от типа аргумента l- или r-value могли вызываться перегруженные функции для r-значений, в которых реализовано перемещение? Это попросту синтаксический сахар над перегрузкой функций? |