C++: данные копируются после std::move [дубликат]C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Гость
 C++: данные копируются после std::move [дубликат]

Сообщение Гость »


В функции main я создаю объект, а затем перемещаю его. Я ожидаю, что память для controlValue выделяется только один раз. Однако выходные данные показывают разные значения, а это означает, что имеется две части памяти. Вопросы простые:
[*]В какой момент появился второй фрагмент воспоминания? [*]Как я могу заставить его работать так, как я ожидал (оба вывода ссылаются на одну и ту же память)?
Дело в неправильной обработке ссылки Parent&parent при перемещении? Я ожидаю, что он по-прежнему ссылается на ту же память, и даже после перемещения данных с p1 на p2 они останутся там.

#include структура Родителя; // вперед структура ребенка { Ребенок (Родитель& i_parent) : родитель(i_parent) { } Родитель& родитель; }; структура Родитель { Родитель() : ребенок(*это) { } int controlValue = 0; Ребенок ребенок; }; интервал основной() { Родительский р1; p1.controlValue = 1; Родитель p2 = std::move(p1); p2.controlValue = 2; std::cout
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»