拷贝构造函数的问题,有一句代码输出结果不明白
#include <iostream.h>
class AAA
{ public:
AAA()
{ cout<<“aaa\n"; }
AAA(int x, int y)
{ cout<<“bbb\n"; }
AAA(AAA &x)
{ cout<<“ccc\n"; }
~AAA()
{ cout<<“ddd\n"; }
};
AAA f1(AAA x)
{ AAA y;
y=x;
return y;
}
void main()
{ AAA p1(10, 20);
AAA p2;
p2=p1;
AAA p3=p2;
AAA p4=f1(p3);
cout<<"eee" ;
cout<<endl;
}
输出结果是:
bbb
aaa
ccc
ccc
aaa
ccc
ddd
ddd
eee
ddd
ddd
ddd
ddd
为什么输出eee前面有两个ddd
多谢