问题 单项选择题

下面程序的运行结果为( )。  # include <iostream.h>  class A  {    int num;  public:    A(inti){hum=i;}    A(A&a){num=a.num++;}    void print( ){cout << num;}  };  void main( )  {    Aa(1),b(a);    a.print( );    b.print( );  }

A.11

B.12

C.21

D.22

答案

参考答案:C

解析:本题考查考生对拷贝构造函数的掌握。因为++运算是右结合的, 所以在使用a对b赋值时,b的num变为1而a的num变为2(先赋值再自加)。

单项选择题
多项选择题