私はScott Meyersのより効果的なC++を読んでいます。編集中!項目2は、dynamic_castがダウンキャストだけでなく兄弟キャストにも使用できることを述べています。誰も兄弟のために(合理的に)非営利の使用法の例を提供してくれるのではないでしょうか?この愚かなテストは、必要に応じて0を表示しますが、私はそのような変換のためのアプリケーションを想像することはできません。兄弟のdynamic_castのユースケースは何ですか?
#include <iostream>
using namespace std;
class B {
public:
virtual ~B() {}
};
class D1 : public B {};
class D2 : public B {};
int main() {
B* pb = new D1;
D2* pd2 = dynamic_cast<D2*>(pb);
cout << pd2 << endl;
}
「クロスキャスト」を検索します。これは、クラスが2つの異なるクラスから継承するときに使用されます(あなたの質問のように)。 –