C++: данные копируются после std::move [дубликат] ⇐ 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
В функции 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
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Будет ли добавление элементов Std :: String в Std :: deque с Std :: Move более эффективным?
Anonymous » » в форуме C++ - 0 Ответы
- 25 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Будет ли добавление элементов Std :: String в Std :: deque с Std :: Move более эффективным?
Anonymous » » в форуме C++ - 0 Ответы
- 21 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Будет ли добавление элементов Std :: String в Std :: deque с Std :: Move более эффективным?
Anonymous » » в форуме C++ - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-