C++/C++

[C++] 대입연산자

MaxLevel 2021. 5. 1. 12:39

대입연산자는 이미 생성된 인스턴스에 다른 인스턴스를 대입할 때 수행된다.

디폴트로 얇은복사가 수행된다.

복사생성자와 헷갈리지 말아야 할 점으로, 복사생성자는 선언과 동시에 초기화할 때 수행되고

대입연산자는 '이미' 생성된 인스턴스에 다른 인스턴스를 대입할 때 수행된다는 것이다.

 그렇기 때문에 복사생성자는 깊은복사가 되게끔 정의해놔도 대입연산시에는 얕은복사가 수행된다는 것이다.(아예 다른 작업이기 때문)

 

그렇기 때문에 대입연산자로 값복사를 하려할 경우 깊은복사생성자를 따로 정의해준것처럼 대입연산자도 따로 연산자 오버로딩을 해줌으로써 깊은복사를 하게 해줘야한다.