2009-10-10 11 views

答えて

5

2つのポインタは、それらを介して同じオブジェクトにアクセスできるときはいつでもエイリアスされます。標準のパラグラフ3.10/15は、オブジェクトへのアクセスがいつ有効であるかを指定する。

プログラムが動作が定義されていない次のいずれかのタイプ以外の左辺値を介してオブジェクトの格納された値にアクセスしようとする場合:

  • オブジェクトの動的な型を、
  • オブジェクトの動的タイプに対応する符号付きまたは符号なしタイプのタイプ
  • タイプが符号付きまたは符号なしタイプの対応タイプです。 オブジェクトの動的型のCv修飾バージョンへの参照、
  • メンバー間で前述の型の1つを含む集合体または共用体型(再帰的には、副集合体または共用体のメンバを含む)
  • オブジェクトの動的型の(おそらくcv修飾された)基本クラス型である型、
  • charまたはunsigned char型です。あなたのケースで

*derivedは、オブジェクトの動的な型のL値のいずれかであるか、オブジェクトの動的な型の基本クラスタイプであるタイプのものです。 *baseは、オブジェクトの動的型の基本クラス型である型です。

したがって、derivedbaseの両方でオブジェクトにアクセスし、2つのポインタに別名を付けることができます。

関連する問題