teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

追記

2019/12/27 02:14

投稿

__ook
__ook

スコア49

title CHANGED
File without changes
body CHANGED
@@ -39,4 +39,37 @@
39
39
 
40
40
  以上のコードを実行してみたところ、すべての変数のアドレスが違いました。
41
41
  moveの場合アドレスが変わらないことを想定していました(すでに認識が間違っている?)
42
- defaultではmoveの挙動にならないのでしょうか。
42
+ defaultではmoveの挙動にならないのでしょうか。
43
+
44
+ 【追記】
45
+ ```cpp
46
+ #include <iostream>
47
+ #include <vector>
48
+ #include <string>
49
+
50
+ using namespace std;
51
+
52
+ class X
53
+ {
54
+ public:
55
+ vector<string> s;
56
+ X() = default;
57
+ X(X&) = default;
58
+ X(X&& x) noexcept : s(move(x.s)) {};
59
+ };
60
+
61
+ int main()
62
+ {
63
+ X x1;
64
+ cout << &x1.s << endl;
65
+
66
+ X x_c1(x1);
67
+ cout << &x_c1.s << endl;
68
+
69
+ X x_m1(move(x1));
70
+ cout << &x_m1.s << endl;
71
+ }
72
+ ```
73
+
74
+ 以上のコードでもアドレスが変わるのはなぜでしょうか…
75
+ moveを定義したつもりなのですが…