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

回答編集履歴

1

fix typo

2016/02/08 01:43

投稿

yohhoy
yohhoy

スコア6191

answer CHANGED
@@ -6,6 +6,7 @@
6
6
 
7
7
  という訳で、C++言語仕様の通りです。
8
8
 
9
+ ----
9
10
  > また以下は、CBaseのデストラクタを、非仮想デストラクタにして実行した結果です。
10
11
  > (中略)
11
12
  > なぜ、CBaseのデストラクタが呼ばれるのでしょうか。
@@ -14,4 +15,4 @@
14
15
  CSub* sub = new CSub1();
15
16
  delete sub;
16
17
  ```
17
- 3番目の処理では、動的な型`CSub1`を持つオブジェクトを、静的な型`CSub`のポインタとして取り扱っています。対象の型が**非仮想(non-virtual)**なデストラクタを持つ場合、コンパイラは**静的な型**のクラス継承ツリーを遡って`CSub::~CSub()`→`CBase::CBase()`と呼び出しを行います。
18
+ 3番目の処理では、動的な型`CSub1`を持つオブジェクトを、静的な型`CSub`のポインタとして取り扱っています。対象の型が**非仮想(non-virtual)**なデストラクタを持つ場合、コンパイラは**静的な型**のクラス継承ツリーを遡って`CSub::~CSub()`→`CBase::~CBase()`と呼び出しを行います。