回答編集履歴
3
* の追加
answer
CHANGED
@@ -31,7 +31,7 @@
|
|
31
31
|
**追記**
|
32
32
|
`a.child = new Student(0, "nobody");` の代わりに、
|
33
33
|
`Student c(0, ""); a.child = &c;` と書いても落ちなくなります。
|
34
|
-
とにかく、`a.child = b;` で b の実体を丸ごとコピーするためには、
|
34
|
+
とにかく、`*a.child = b;` で b の実体を丸ごとコピーするためには、
|
35
35
|
その前に a.child が Student の領域を指していなければなりません。
|
36
36
|
|
37
37
|
`a.child =` はポインタへの代入ですが、
|
2
補足説明の追加
answer
CHANGED
@@ -32,4 +32,7 @@
|
|
32
32
|
`a.child = new Student(0, "nobody");` の代わりに、
|
33
33
|
`Student c(0, ""); a.child = &c;` と書いても落ちなくなります。
|
34
34
|
とにかく、`a.child = b;` で b の実体を丸ごとコピーするためには、
|
35
|
-
その前に a.child が Student の領域を指していなければなりません。
|
35
|
+
その前に a.child が Student の領域を指していなければなりません。
|
36
|
+
|
37
|
+
`a.child =` はポインタへの代入ですが、
|
38
|
+
`*a.child =` はポインタへの代入ではありません。実体のコピーです。
|
1
new の代わりに自動変数の領域を使う方法を追加。
answer
CHANGED
@@ -26,4 +26,10 @@
|
|
26
26
|
}
|
27
27
|
```
|
28
28
|
連結リストや木構造など、同一クラスへのポインタを持つクラスはいくらでもあります。
|
29
|
-
でも、使用するときは、a.child = &b; が普通です。
|
29
|
+
でも、使用するときは、a.child = &b; が普通です。
|
30
|
+
|
31
|
+
**追記**
|
32
|
+
`a.child = new Student(0, "nobody");` の代わりに、
|
33
|
+
`Student c(0, ""); a.child = &c;` と書いても落ちなくなります。
|
34
|
+
とにかく、`a.child = b;` で b の実体を丸ごとコピーするためには、
|
35
|
+
その前に a.child が Student の領域を指していなければなりません。
|