C++에서 operator=()는 대입 연산자 오버로딩이며, “객체에 값을 대입하는 순간” 호출됩니다.
class A {
public:
A& operator=(const A& other) {
// 대입할 때 호출됨
std::cout << "Copy assignment operator called\\n";
return *this;
}
};
“객체가 이미 생성된 이후, 다른 객체의 값을 할당할 때” 호출됩니다.
A a1;
A a2;
a1 = a2; // ✅ operator=() 호출
이 경우 a1은 이미 생성되었고, 그 후 a2의 값이 a1에 대입되므로 대입 연산자가 호출됩니다.
A a2;
A a1 = a2; // ✅ 복사 생성자 호출, ❌ operator=() 아님