以下函数的输出结果为什么是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/11/16 10:38:25
以下函数的输出结果为什么是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),明白没有?