#include<iostream>
using namespace std;
class Sample{
public:
int v;
Sample(){};//1
Sample(int x):v(x){};//2
Sample(const Sample&x)//3
{
v=2+x.v;
}
};
void printanddouble(Sample o)
{
cout<<o.v<<endl;
}
int main()
{
Sample a(5);//这个等价于以整型初始化类a
Sample b=a;//等价于以对象a初始化b ,所以此时b=7
printanddouble(b);//在这里,对象b再次初始化(+2)所以这里输出9
Sample c=20;
printanddouble(c);//这里和上面的是类似的,这里输出22
Sample d;//以无参构造函数初始化
d=a;//这里只是赋值让d=5
cout<<d.v;//作用:输出b也就是5
return 0;
}