回答編集履歴
2
誤字修正
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
結論から言うと、基本クラスのコンストラクタで派生クラスの仮
|
5
|
+
結論から言うと、基本クラスのコンストラクタで派生クラスの仮想関数は呼び出せません。理由は、基本クラスのコンストラクタは、派生クラスのコンストラクタより前に起動するからです。もし、その仮想関数が派生クラスの未初期化のオブジェクトを参照したら…
|
6
6
|
|
7
7
|
コンストラクタはまずvtblを設定し、それにより仮想関数は使えるようになります。今回、派生クラスのコンストラクタが呼ばれていないので、「派生クラスの」仮想関数にアクセスできないのです。
|
8
8
|
|
@@ -39,3 +39,5 @@
|
|
39
39
|
|
40
40
|
|
41
41
|
追記:遅延コンストラクタってキーワードをば。
|
42
|
+
|
43
|
+
さらに追記:誤字修正しました。
|
1
加筆
test
CHANGED
@@ -35,3 +35,7 @@
|
|
35
35
|
参考文献:
|
36
36
|
|
37
37
|
http://naokirin.hatenablog.com/entry/20110124/1295846829
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
追記:遅延コンストラクタってキーワードをば。
|