下面程序的运行结果为( )。 #include class A { int num; public: A...
发布网友
发布时间:2024-05-30 15:21
我来回答
共2个回答
热心网友
时间:2024-06-02 15:46
a1初始化的时候 a1.num 为1
当b初始化时, 由于调用了构造函数A(A &a) 这里当执行b的构造函数时 会把形参a中的num赋给b.num 所以当b结束构造函数后b.num是1。
但是在b执行构造函数时 有这么一句num=a. num++ 而a是a1的引用 也就是说,对a的操作实际上就是对a1的操作 所以再执行完这个赋值语句之后 a.num++ 此时 a.num=2
所以最终打印结果 为21
热心网友
时间:2024-06-02 15:41
num=a.num++
从左至右
b:num=a.num(++)=1
a:a.num++=a.num+1=2