下列程序的输出结果为2,请将程序补充完整。 #include<iostream> using namespace std; class Base { public: ______void fun(){cout<<1;}

admin2010-12-16  22

问题 下列程序的输出结果为2,请将程序补充完整。
   #include<iostream>
   using namespace std;
   class Base
   {
   public:
   ______void fun(){cout<<1;}
   };
   class Derived:public Base
   {
   public:
      void fun(){cout<<2;}
   };
   int main()
   {
      Base*p=new Derived;
      p->fur();
      delete p;
      return 0;
   }

选项

答案virtual

解析 本题考核虚函数的概念。在C++中,一个基类指针(或引用)可以用于指向它的派生类对象,而且通过这样的指针(或引用)调用虚函数时,被调用的是该指针(或引用)实际指向的对象类的那个重定义版本,这样的调用称为多态调用。基类Base和派生类Derived中都定义了成员函数fun,但是有不同的实现。程序最后输出的结果为2,表明通过对象指针p调用的函数版本为派生类中定义的,只有把基类的fun函数定义为虚函数,才能满足要求。
转载请注明原文地址:https://jikaoti.com/ti/iYW0FFFM
0

最新回复(0)