问题
单项选择题
下面程序的运行结果为( )。
#include<iostream.h>
class A
int num;
public:
A(int i)num=i;
A(A &a)num=a.num++;
void print()cout<<num;
;
void main()
A a(1),b(a);
a.print();
b.print();
A.11
B.12
C.21
D.22
答案
参考答案:C
解析: 本题考查考生对拷贝构造函数的掌握。因为++运算是右结合的,所以在使用a对b赋值时b的num变为1,而a的num变为2(先赋值再自加)。