有以下程序: #include <iostream> using namespace std; class Base { private: int a,b; public: Base(int x,

admin2010-06-06  27

问题 有以下程序:
   #include <iostream>
   using namespace std;
   class Base
   {
   private:
      int a,b;
   public:
      Base(int x, int y)
      {
         a=x;
         b=y;
      }
      void Show()
      {
         cout<<a<< ’,’ <<b<<end1;
      }
   }

选项

答案10,20

解析 本题考核基类指针的使用。本题首先定义了一个基类Base和一个由Base派生出来的派生类Derive。在主函数中,定义了一个基类Base指针pb和基类对象b,还定义了派生类Derive的对象d。然后将派生类对象d的地址赋值给指向基类Base的指针pb。由于Derive是Base的子类型,因此允许上述赋值。但这时指针pb只能使用从基类Base继承的成员,即当pb指向d对象时,pb->show还是调用基类Base的成员函数show()。所以程序最后输出的对象d中对基类成员的初始化值,即10,20。
转载请注明原文地址:https://kaotiyun.com/show/jSjp777K
0

最新回复(0)