6
我做了以下測試:爲什麼在分配前有一份副本?
#include <iostream>
#include <vector>
using namespace std;
class A
{
private:
int i;
public:
A():i(1){cout<<"A constr"<<endl;}
A(const A & a):i(a.i){cout<<"A copy"<<endl;}
virtual ~A(){cout<<"destruct A"<<endl;}
void operator=(const A a){cout<<"A assign"<<endl;}
};
int main()
{
A o1;
A o2;
o2=o1;
}
,輸出是:
A constr
A constr
A copy
A assign
destruct A
destruct A
destruct A
看來,「02 = 01」做一個備份,然後分配,我不知道有什麼故事背後。謝謝!