class A { int a; } class B: public A { int b; } A *pointerA = new A; B *pointerB = dynamic_cast<B*>(pointerA); C *pointerC = dynamic_cast<B*>(pointerA);
基类不能转到派生类吧。 B转到A可以
引用 1 楼 kuanglong2016 的回复:1. pointerA->b无效,因为类A中没有成员b 2. 不知道C是什么,如果也是继承体系中的,但不存在多重继承的话,则是同一个内存数据区域 另外,我觉得dynamic_cast<B*>(pointerA);应该会返回一个NULL 那 pointerB->b有效了吧?
1. pointerA->b无效,因为类A中没有成员b 2. 不知道C是什么,如果也是继承体系中的,但不存在多重继承的话,则是同一个内存数据区域 另外,我觉得dynamic_cast<B*>(pointerA);应该会返回一个NULL
64,633
社区成员
250,963
社区内容
加载中
试试用AI创作助手写篇文章吧