最后为什么连续析构了三个?(输出结果是从电脑上抄的,没问题)
#include <iostream>
using namespace std;
class A
{
int x;
public:
A(int a)
{
x = a;
cout << "x=" << x << "\t" << "A_1" << "\n";
}
A(A &s)
{
x = s.x + 1;
cout << "A_2" << "\n";
}
~A()
{
cout << x << "\t" << "~A" << "\t";
}
};
void main(void)
{
A f1(2);//创建f1 输出 x=2 A_1
A f2(f1);//创建f2 输出 A_2
f2 = A(3);//创建 A(3)对象 输出 x=3 A_1 复制给f2 析构 A(3) 输出 3 ~A 此时的f2的x值为3
f1 = A(f2);//创建 A(f2)对象 输出 A_2 复制给f1 析构 A(f2) 输出 4 ~A f1的值为4
//程序退出 析构 f2 输出 3 ~A 和 f1 输出 4 ~A
}