下列程序输出结果为: #include<iostream> using namespace std; class TestClass1 { public: TestClass1(){} TestClass1(int

admin2010-06-06  20

问题 下列程序输出结果为:
   #include<iostream>
   using namespace std;
   class TestClass1
   {
   public:
   TestClass1(){}
   TestClass1(int i)
   {
   x1=i;
   }
   void dispa()
   {
   cout<<"x1="<<x1<<",";
   }
   private:
   int x1;
   };
   class TestClass2:public TestClass1
   {
   public:
   TestClass2(){}
   TestClass2(int i):TestClass1(i+10)
   {
   x2=i;
   }
   void dispb()
   {
   dispa();
   cout<<"x2="<<x2<<endl;
   }
   private:
   int x2;
   };
   int main()
   {
   TestClass2 b(2);
   b.dispb();
   return 0;
   }

选项

答案x1=12,x2=2

解析 由主函数main入手,首先定义类TestClass2的对象b,成员数据为2。然后调用dispb函数。在dispb中首先执行dispa函数,TestClass2为TestClass1的派生类,“TestClass2(int i):TestClass1(i+10)”所以TestClass1中的x1=12,dispa输出的结果为x1=12。在TestClass1中x2=2,所以dispb中的输出语句“cout<<”x2=”<<x2<<endl;”,输出x2=2。即答案为“x1=12,x2=2”。
转载请注明原文地址:https://kaotiyun.com/show/1Zjp777K
0

最新回复(0)