各位大大帮帮忙,一个强制类型转换的疑惑,该怎么处理

各位大大帮帮忙,一个强制类型转换的疑惑#includeiostreamusing namespace stdstruct A{void b(){cout

各位大大帮帮忙,一个强制类型转换的疑惑
#include<iostream>

using namespace std;

struct A
{
void b()
{
cout<<"Hello ! This is A !"<<endl;
}
};
struct B
{
void b()
{
cout<<"Hello ! This is B !"<<endl;
}
};

void main()
{
A* pa=new A;

pa->b();

B* pb=(B*)pa;

pb->b();

delete pb;
}
在强转之后,为什么指针pb的值变为pa的值,但是执行的却是struct B里的函数b()???

[解决办法]
普通成员函数调用在编译阶段决定,变量是什么类型,就会执行那个类型的函数