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

回答編集履歴

2

誤字修正

2017/04/04 15:44

投稿

majiponi
majiponi

スコア1722

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  これ、昔はまったことありますわ…
2
2
 
3
- 結論から言うと、基本クラスのコンストラクタで派生クラスの仮関数は呼び出せません。理由は、基本クラスのコンストラクタは、派生クラスのコンストラクタより前に起動するからです。もし、その仮関数が派生クラスの未初期化のオブジェクトを参照したら…
3
+ 結論から言うと、基本クラスのコンストラクタで派生クラスの仮関数は呼び出せません。理由は、基本クラスのコンストラクタは、派生クラスのコンストラクタより前に起動するからです。もし、その仮関数が派生クラスの未初期化のオブジェクトを参照したら…
4
4
  コンストラクタはまずvtblを設定し、それにより仮想関数は使えるようになります。今回、派生クラスのコンストラクタが呼ばれていないので、「派生クラスの」仮想関数にアクセスできないのです。
5
5
  (ここまで当時の師匠の受け売り)
6
6
 
@@ -18,4 +18,5 @@
18
18
  参考文献:
19
19
  http://naokirin.hatenablog.com/entry/20110124/1295846829
20
20
 
21
- 追記:遅延コンストラクタってキーワードをば。
21
+ 追記:遅延コンストラクタってキーワードをば。
22
+ さらに追記:誤字修正しました。

1

加筆

2017/04/04 15:44

投稿

majiponi
majiponi

スコア1722

answer CHANGED
@@ -16,4 +16,6 @@
16
16
  個人的には、生のポインタよりスマートポインタの使用をオススメします。
17
17
 
18
18
  参考文献:
19
- http://naokirin.hatenablog.com/entry/20110124/1295846829
19
+ http://naokirin.hatenablog.com/entry/20110124/1295846829
20
+
21
+ 追記:遅延コンストラクタってキーワードをば。