首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

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

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

热点排行