C ++中的dynamic_cast和static_cast
我dynamic_cast对C ++中的关键字很困惑。
struct A {
virtual void f() { }};struct B : public A { };struct C { };void f () {
A a;
B b;
A* ap = &b;
B* b1 = dynamic_cast<B*> (&a); // NULL, because 'a' is not a 'B'
B* b2 = dynamic_cast<B*> (ap); // 'b'
C* c = dynamic_cast<C*> (ap); // NULL.
A& ar = dynamic_cast<A&> (*ap); // Ok.
B& br = dynamic_cast<B&> (*ap); // Ok.
C& cr = dynamic_cast<C&> (*ap); // std::bad_cast}定义说:
该
dynamic_cast关键字从一个指针或引用类型到另一个蒙上了基准,执行运行时检查以确保铸造的有效性
我们可以dynamic_cast在C中编写一个等效的C ++,以便我能更好地理解事物吗?
慕标5832272
侃侃无极
桃花长相依
相关分类