c++의 기본 operator=작업 에 대한 자세 한 설명

c++에서 operator=작업 이 정의 되 지 않 으 면 컴 파일 러 는 기본 operator=작업 을 제공 합 니 다.operator=조작 과 복사 구조 함수 의 기능 이 유사 하기 때문에 모두 복사 작업 을 수행 합 니 다.따라서 컴 파일 러 도 쓸모없는 기본 operator=작업 과 쓸모없는 기본 operator=작업 으로 나 뉜 다.또한 쓸모없는 기본 operator=작업 과 쓸모없는 작업 을 언제 제공 하 는 지 는 복사 구조 함수 와 유사 합 니 다.(상세 한 분석 과정 은c++의 기본 복사 함수 사용 에 대한 자세 한 설명을 참고 하 시기 바 랍 니 다.
하나의 클래스 에 대해 컴 파일 러 는 쓸모없는 operator=작업 을 제공 합 니 다.
1.이 종 류 는 허 멤버 함수(허 기 류 를 계승 하거나 계승 하 는 기 류 는 허 멤버 함수 도 이러한 상황 에 속한다)를 포함한다.
2.이 클래스 가 계승 하 는 기본 클래스 는 operator=작업 을 사용자 정의 합 니 다.(기본 클래스 가 operator=작업 을 사용자 정의 하지 않 으 면 컴 파일 러 는 기본 클래스 에 쓸모없는 기본 operator=작업 을 제공 합 니 다.이것 도 이러한 상황 에 속 합 니 다.즉,기본 클래스 에 쓸모없는 operator=작업 이 있 으 면 됩 니 다.이 비 쓸모없는 operator=작업 이 사용자 정의 든 컴 파일 러 가 제공 하 는 것 이 든 모두 가능 합 니 다)
3.이 종 류 는 구성원 대상 을 포함 하고 있 습 니 다.이 구성원 대상 은 operator=작업 을 사용자 정의 합 니 다.(구성원 대상 이 operator=작업 을 사용자 정의 하지 않 으 면 컴 파일 러 는 구성원 대상 변수 에 쓸모없는 기본 operator=작업 을 제공 합 니 다.또한 이러한 경우 에 속 합 니 다.즉,구성원 대상 변수 에 쓸모없는 operator=작업 이 있 으 면 이 쓸모없는 operator=작업 이 사용자 정의 든 컴 파일 러 가 제공 하 든 모두 가능 하 다 는 것 이다)
또한,클래스 가 operator=작업 을 사용자 정의 하면 컴 파일 러 는 호출 만 책임 지고 복사 과정 을 추가 로 제공 하지 않 습 니 다.컴 파일 러 가 제공 하 는 기본 operator=작업 은 쓸모없는 것 이 든 쓸모없는 것 이 든 모두 얕 은 복사 만 수행 합 니 다.

좋은 웹페이지 즐겨찾기