구조 오버로드 연산자에 대한 혼란
으아악에서
으아악함수는 무엇인가요?
이 두 문장을 삭제해도 컴파일은 정상적으로 진행되지만
컴파일 오류가 발생하지만
으아악정상적으로 컴파일 가능합니다.
구조 초기화는 안됩니다. bign n(123);
초보자가 시도해 본 결과는 다르지 않습니다.
도움을 바랍니다
伊谢尔伦2017-06-12 09:26:48
으아악글 인용: http://www.cnblogs.com/chio/a… 할당은 기존 두 개체 사이에서 수행되는 반면 초기화는 새 개체를 생성하는 것이며 초기 값은 다른 기존 개체에서 가져옵니다. 컴파일러는 할당 중에 오버로드된 할당 연산자를 호출하고 초기화 중에 복사 생성자를 호출하는 두 가지 상황을 구분합니다. 클래스에 복사 생성자가 없으면 컴파일러는 기본 생성자를 제공합니다. 이 기본 복사 생성자는 클래스의 모든 멤버를 복사합니다.
복사 생성자는 다음과 같습니다.
으아악물론 댓글을 달고 나면 오류가 생기겠죠
으아악기본 생성자를 먼저 호출한 후 할당 연산자를 호출하므로 두 함수를 주석 처리한 후에는 아무런 문제가 없습니다.
직접 디버깅할 수 있습니다.