#include <iostream>
using namespacestd ;
class A{
public:
void display(){cout << "A class" << endl ;}
} ;
class B:public A{
public:
void displayB(){cout << "B class" << endl ;}
} ;
int main(){
A a ;
((B*)&a)->displayB() ;
return 0 ;
}
屏幕输出B class 照理说,只是进行了指针的转换,内存中并不是真实存在B类对象的,为什么只是转换了指针类型之后就可以调用成功呢?
对比分析下面一段代码: