Base
クラスとクラスがあるとしDerived
ます。
Base *A = new Base;
ここで、A は Base クラスへのポインタ ポイントであり、A がnew
指すものを構築します。
私も見ました
Base *B = new Derived;
これをどう説明する?Base
B はClassへのポインターであり、 Derived
B によって構築され、ポイントされたクラスですか? Base
たとえば、クラスから派生した関数があり、それがクラスでVirtual void f()
オーバーライドされている場合、Derived
B->f()
関数のどのバージョンを呼び出すか? クラス内のバージョンBase
、またはクラス内でオーバーライドされたバージョンDerived
。
に新しい関数がある場合void g()
、Derived
はB->g()
この関数を適切に呼び出すでしょうか?
もう一つは、です
int *a = new double;
また
double *a = new int;
法的?