为了直观观察,以下代码中复制构造函数会把成员变量num+1
class B
{
int num;
public:
B():num(0){
cout << "默认构造函数" << " num= "<< num <<endl;
}
B(int n) :num(n){
cout << "带参构造函数" << " num= " << num << endl;
}
B(const B &b)
{
num = b.num+1;
cout << "复制构造函数" << " num= " << num << endl;
}
/*B(B &&b)
{
cout << "移动构造函数" << endl;
}*/
B& operator=(const B &b)
{
cout << "赋值操作符" << " num= " <<b. num << endl;
if (this == &b)
return *this;
num = b.num;
return *this;
}
~B()
{
cout << "析构函数" << " num= " << num << endl;
}
};
B play(B b)
{
B bb(79);
return bb;
}
void main()
{
{
B b1(1);
B b2 = play(b1);
}
cout << "--