dynamic_castの必要性
dynamic_castの必要性がいまいち良く分かりません。
必ずしも必要ないのかも、とも思います。
例えば以下のような場合。
class B
{
public:
virtual void f(){cout << "bbb" << endl;}
};
class D : public B
{
public:
void f(){cout << "aaa" << endl;}
};
int main()
{
B b, *bp;
D d, *dp;
bp = &d;
bp->f();
dp = dynamic_cast<D *>(bp); //(1)
// dp = &d; //(2)
dp->f();
return 0;
}
(1)と(2)はどちらでも同じ意味だと思います。
(2)でいいのなら、(1)のダイナミックキャストをわざわざ用意する必要はないと思います。
どなたかダイナミックキャストの必要性を教えていただけないでしょうか。
お礼
ありがとうございました。