有如下程序: #include <iostream> using namespace std; class A{ public: A(int i){X=i;} void dispa( ){cout<<x<<’

admin2012-04-29  42

问题 有如下程序:
   #include <iostream>
   using namespace std;
   class A{
   public:
   A(int i){X=i;}
   void dispa( ){cout<<x<<’,’;}
   private:
   int x;
   };
   class B:public A{
   public:
   B(int i):A(i+10){x=i;}
   void dispb( ){dispa( );cout<<x<<endl;}
   private:
   int x;
   };
   int main( )}
   B b(2);
   b.dispb( );
   return 0;
   }
   程序的输出结果是
A) 10,2
B) 12,10
C) 12,2
D) 2,2

选项 A、 
B、 
C、 
D、 

答案C

解析 派生类的构造函数定义的一般格式为:
   派生类名(参数总表):基类名(参数表)
   {派生类新增数据成员的初始化语句}
   在生成对象b时,就自动给基类构造函数传递实参10+i,所以dispa( )打印结果为12,dispb( )打印结果为2。
转载请注明原文地址:https://kaotiyun.com/show/pAVp777K
0

最新回复(0)