tôi đang làm các xét nghiệm sau:Tại sao có bản sao trước khi chuyển nhượng?
#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;
}
Và kết quả là:
A constr
A constr
A copy
A assign
destruct A
destruct A
destruct A
Dường như "o2 = o1" đã làm một bản sao đầu tiên tiếp theo là một bài tập, và tôi tự hỏi những gì là câu chuyện đằng sau nó. Cảm ơn!