有如下程序: #include<iostream> using namespace std; class Con { char ID; public: Con():ID(’A’){cout<<1;} Con(

admin2012-01-20  35

问题 有如下程序:
   #include<iostream>
   using namespace std;
   class Con
   {
   char ID;
   public:
   Con():ID(’A’){cout<<1;}
   Con(char ID) :ID(ID) {cout<<2;}
   Con(Con& C) :ID(c.getlD()){cout<<3;}
   char getID()const{return ID;}
   };
   void show(Con C) {cout<<c.getID();}
   int main()
   {
   Con c1;
   show(c1);
   Con c2(’B’);
   show(c2);
   return 0;
   }
   执行上面程序,输出是______。

选项

答案13A23B

解析  Con c1定义c1对象,调用Con的无参数构造函数,输出1,ID值变为A,执行show(c1)时会调用拷贝构造函数,将c1对象的值拷贝给show()函数的形参,此时输出3,然后在show()里面输出c1的ID值A,con c2(’B’)定义c2对象,调用Con(char ID) 构造函数,输出2,c2的ID值为B,show(c2)执行时先调用拷贝构造函数输出3,然后输出B。因此程序输出结果为“13A23B”。
转载请注明原文地址:https://kaotiyun.com/show/T3Vp777K
0

最新回复(0)