>>158さん
レスありがとうございます。

> 同じクラスから派生した物だったら大体似たようなもの筈だから
とありますが、構造体の場合は、
中身が全く一緒だとしてもコンパイルでエラーが出ますよね?

struct AA
struct BB

AA *p, A;
BB B;

p = &A;
p = &B; ←キャスト違い

p = (AA*)(&B)
上のようにキャストを変更してあげればコンパイルは通りますが、
継承したクラスの場合は、勝手にこのような処理をしてくれているのでしょうか?
何でクラスの継承の場合は問題なくコンパイルが通るのかが気になってしまって…。