各位大大帮帮忙,一个强制类型转换的疑惑
#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()???
[解决办法]
普通成员函数调用在编译阶段决定,变量是什么类型,就会执行那个类型的函数