>  Q&A  >  본문

C++ 구조를 사용하여 고정밀 템플릿을 작성할 때 생성자 함수 관련 문제

구조 오버로드 연산자에 대한 혼란

으아악

에서

으아악

함수는 무엇인가요?
이 두 문장을 삭제해도 컴파일은 정상적으로 진행되지만

으아악

컴파일 오류가 발생하지만

으아악

정상적으로 컴파일 가능합니다.
구조 초기화는 안됩니다.
bign n(123);
초보자가 시도해 본 결과는 다르지 않습니다.
도움을 바랍니다

.
三叔三叔2708일 전1065

모든 응답(1)나는 대답할 것이다

  • 伊谢尔伦

    伊谢尔伦2017-06-12 09:26:48

    글 인용: http://www.cnblogs.com/chio/a… 할당은 기존 두 개체 사이에서 수행되는 반면 초기화는 새 개체를 생성하는 것이며 초기 값은 다른 기존 개체에서 가져옵니다. 컴파일러는 할당 중에 오버로드된 할당 연산자를 호출하고 초기화 중에 복사 생성자를 호출하는 두 가지 상황을 구분합니다. 클래스에 복사 생성자가 없으면 컴파일러는 기본 생성자를 제공합니다. 이 기본 복사 생성자는 클래스의 모든 멤버를 복사합니다.

    으아악

    복사 생성자는 다음과 같습니다.

    으아악

    물론 댓글을 달고 나면 오류가 생기겠죠

    으아악

    기본 생성자를 먼저 호출한 후 할당 연산자를 호출하므로 두 함수를 주석 처리한 후에는 아무런 문제가 없습니다.

    직접 디버깅할 수 있습니다.

    회신하다
    0
  • 취소회신하다