私は、次の継承構造を有する型消しゴム有する:繰り返し継承とはstatic_cast
Holder
/ | \
| | |
Holder_A_1 Holder_B_1 Holder_C_1
| | ...
Holder_A_2 Holder_B_2
... ...
| |
Holder_A_base Holder_B_base Holder_C_base
| | ...
Holder_A_base_2 Holder_B_base_2
... ...
| | |
Anchor Anchor Anchor
(アンカーベースクラスは目的に繰り返される)
オブジェクトの構築時に、私はホルダー・オブジェクトを構築し保管と削除のためにAnchor *にキャストしてください。キャストは曖昧さ回避のためHolder_A_base*
を介して行われます:static_cast<Holder_A_base*>(static_cast<Anchor*>(this))
私の質問は:私はHolder
オブジェクトはこれらの両方から派生を消去されているという事実のために知っていれば、それはHolder_B_base*
に(上記で説明したように構築)Anchor*
からstatic_cast
に合法ですタイプ?