读书人

各位大大帮帮忙一个强制类型转换的疑

发布时间: 2012-04-19 14:36:43 作者: rapoo

各位大大帮帮忙,一个强制类型转换的疑惑
#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()???

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

读书人网 >C++

热点推荐