C++에서 operator=()는 대입 연산자 오버로딩이며, “객체에 값을 대입하는 순간” 호출됩니다.


개념 먼저: 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=() 아님