问题 单项选择题

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

多项选择题
问答题 简答题