多重継承または仮想継承を使用していないと仮定すると、C++ 標準は、aDerived*
を aに変換すると、Base*
両方のポインターがまったく同じ値になることを保証しますか? たとえば、次のコードは、および/または仮想関数がsuccess()
ある場合でも、常に を呼び出しますか?Derived
Base
Derived* d = new Derived;
Base* b = d;
if (((void*)b) == ((void*)d))
success();
else
failure();