Class A
{
 fun
 {
  printf("A Class");
 }
}Class B
{
 fun
 {
  printf("B Class");
 }
}void main()
{
 A a;
 B *p;
 p=(B *)&A;
 p->fun();
}
问:会有什么结果?

解决方案 »

  1.   

    类成员默认是private类型的,程序会报错,提示不能访问私有成员函数
    如果加上public,会输出B Class
      

  2.   

    如果你将fun的属性设置为public,那么就会调用b的fun()
      

  3.   

    我试了下,运行输出的是B Class。
    不过要先改很多语法错误。。
      

  4.   

    fun没有virtual
    所以,调用哪个函数和指针类型有关。 指针类型为B 就调用B的
      

  5.   

    改成这样了:
    Class A 
    {
    public: 
    fun 

      printf("A Class"); 

    } Class B 
    {
    public:
    fun 

      printf("B Class"); 

    } void main() 

    A a; 
    B *p; 
    p=(B *)&A; 
    p->fun(); 

    问:会有什么结果?
      

  6.   

    结果根本就出不来A跟B之间不是继承关系,那么p=(B *)&A;这句就编译都通不过,还有class的c是小写的,不是楼主的大写。