C++ 虚函数 笔试题目--绿盟科技

来源:互联网 发布:directx11 编程指南 编辑:程序博客网 时间:2024/04/26 18:26

求下面程序的输出值:

class A{
public:
 A() {func(0);};
 virtual void func(int data) {printf("A1 :%d\n",data);}
 virtual void func(int data) const {printf("A2 :%d\n",data);}
 void func(char *str) {printf("A3 :(%s)\n",str);}
};

class B:public A{
public:
 void func() {printf("B1 :%s\n","");}
 void func(int data) {printf("B2 :%d\n",data);}
 void func(char *str) {printf("B3 :(%s)\n",str);}
};

int main()
{
 A *pA;
 B b;                        // A1:0                 
 const A *pcA;
 
 pA=&b;
  pA->func(1);                // B2:1
  pA->func("test");           // A3:(test)
  A().func(1);//产生:了 两句 : A1:0
         //      A1:1
  pcA=&b;
  pcA->func(2);            //    A1:2
 return 0;
}

结果:

原创粉丝点击