dynamic_cast?
代码如下:
#include <iostream>
struct A
{
public:
virtual void foo(){}
};
class B:public A{};
class C:public A{};
int main()
{
A *pa=new C;
B *pb = dynamic_cast<B*>(pa);// pb为什么为null。
if(!pb)
std::cout << "null" << std::endl;
else
pb->foo();
return 0;
}
我使用g++编译,然后执行,没有错误。可是使用vc编译后执行却是非法。
why?