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

2023-04-24

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

A . 11
B . 12
C . 21
D . 22



参考答案:C

参考解析:

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