以下函数的输出结果为什么是21?#include using namespace std;class A{int num;public:A(int i){num=i;};A(A &a){num=a.num++;}void print(){cout

来源:学生作业帮助网 编辑:六六作业网 时间:2024/05/05 05:19:26
以下函数的输出结果为什么是21?#includeusingnamespacestd;classA{intnum;public:A(inti){num=i;};A(A&a){num=a.num++;

以下函数的输出结果为什么是21?#include using namespace std;class A{int num;public:A(int i){num=i;};A(A &a){num=a.num++;}void print(){cout
以下函数的输出结果为什么是21?
#include
using namespace std;
class A
{
int num;
public:
A(int i){num=i;};
A(A &a){num=a.num++;}
void print(){cout<};
void main()
{
A a(1),b(a);
a.print();
b.print();
system("pause");
}

以下函数的输出结果为什么是21?#include using namespace std;class A{int num;public:A(int i){num=i;};A(A &a){num=a.num++;}void print(){cout
A(A &a){num=a.num++;} 这个拷贝构造函数会把被引用的原对像的num自增1,所以
b(a)时,b是复制了a中的num值,同时使a.num自增了1
a(1)调用的是 A(int i) 而 b(a)调用的是A(A &a),明白没有?