回答編集履歴
1
間違いでした
answer
CHANGED
@@ -1,5 +1,18 @@
|
|
1
1
|
こんにちは。
|
2
2
|
|
3
|
+
yohhoyさんのコメントを見て、全体的に間違っていたので修正します。すいません。
|
4
|
+
|
5
|
+
元の回答の前半は正しいのですが、shared_ptr<T>にはshard_ptr<Y>の参照を受け取るコンストラクタが定義されていて、T*をY*へ変換できる(TがYの既定クラスの時も該当)なら有効に機能します。
|
6
|
+
従って、ご提示されているようなエラーは出ない筈です。
|
7
|
+
|
8
|
+
面倒なのでファイルを1つにまとめましたが、確かにエラーはでませんでした。
|
9
|
+
[wandbox](https://wandbox.org/permlink/eNvXNWWGzRRMVj72)
|
10
|
+
|
11
|
+
お使いのコンパイラが古い等の可能性はないでしょうか?
|
12
|
+
|
13
|
+
-----
|
14
|
+
【元の回答】
|
15
|
+
|
3
16
|
> 子クラスのインスタンスは親クラスの変数に代入できる
|
4
17
|
|
5
18
|
その通りです。ただ、私も昔はまったことがあるのですが、`shared_ptr<ChildClass>`は、`shared_ptr<ParentClass>`の派生クラスではありません。
|