「静的型」と「動的型」という用語について少し混乱しています。
与えられた
class A {};
class B:A {};
A* a = new B();
B* b = new B();
*a の静的タイプは B であり、動的タイプは A です。 *b の静的タイプは B であり、動的タイプは B です。
あれは正しいですか?
これは動的型チェックに関する質問ではなく、「静的型」と「動的型」という用語に関する質問です。この記事http://makomdev.blogspot.com/2008/04/c-static-types-vs-dynamic-types.htmlでは、著者は静的型を「実際の」型として定義し、動的型を基本型として定義しています。彼はまた、矛盾しているように見える rhs と lhs の観点からそれらを定義しています。