问题
单项选择题
下面程序的运行结果为( )。 # 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(先赋值再自加)。