OJ:奇怪的类复制
描述
程序填空,使其输出9 22 5
#include <iostream>
using namespace std;
class Sample {
public:
int v;
// 在此处补充你的代码
};
void PrintAndDouble(Sample o)
{
cout << o.v;
cout << endl;
}
int main()
{
Sample a(5);
Sample b = a;
PrintAndDouble(b);
Sample c = 20;
PrintAndDouble(c);
Sample d;
d = a;
cout << d.v;
return 0;
}
输入
无
输出
9
22
5
程序填空
Sample(){}
Sample(int i) : v(i){}
Sample(const Sample& s){
v = s.v + 2;
}
解析:void PrintAndDouble( Sample o) 参数不是引用或指针类型,那么就相当于值传递,函数会构造一个实参的副本。构造这个副本的过程导致复制构造函数被多调用了一次。
感谢花费宝贵的时间浏览,
转载请注明出处。
本人将在[资源共享]分类下陆续加入学习过程中一些比较重要且有用处的资料、源码,大家可前往下载,一起进步。
感谢支持!

浙公网安备 33010602011771号