本文共 562 字,大约阅读时间需要 1 分钟。
求下面程序的输出值:
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; }结果: