执行以下程序后,输出结果第二行的内容是______。 #include<iostream> using namespace std; class TestClass { public: virtual void who(

admin2012-01-20  30

问题 执行以下程序后,输出结果第二行的内容是______。
   #include<iostream>
   using namespace std;
   class TestClass
   {
   public:
   virtual void who(){cout<<"Base Class"<<endl;}
   };
   class TestClass1:public TestClass
   {
   public:
   virtual void who(){cout<<"TestClass1 Class"<<endl;}
   };
   class TestClass2:public TestClass
   {
   public:
   virtual void who(){cout<<"TestClass2 Class"<<endl;}
   };
   int main(int argc,char*argv[])
   {
   TestClass obj1,*p;
   TestClass1 obj2;
   TestClass2 obj3;
   P=&obj1;p->who();
   p=&obj2;p->who();
   p=&obj3;p->who();
   return 0:
   }

选项

答案TestClass1 Class

解析 TestClass为基类,TestClass1和TestClass2都是TestClass的派生类。本题从main主函数入手,首先定义了TestClass类型的对象obj1和指针p,然后又分别定义了TestClass1和TestClass2的对象obj2和obj3。指针分别指向对象obj1、obj2和obj3,然后分别调用其成员函数who(),分别输出:“Base Class”,“TestClass1 Class”,“TestClass2 Class”。
转载请注明原文地址:https://jikaoti.com/ti/ODL0FFFM
0

最新回复(0)