C++11 공통 구문 - 명시적 유형 변환 연산자의 특정 사용법

php是最好的语言
풀어 주다: 2018-07-26 13:54:49
원래의
2380명이 탐색했습니다.

저자는 명시적 유형 변환 연산자와 C++ Primer 책의 차이점에 대해 많이 고민하고 더 의미 있는 예제를 제공하기 위해 노력했습니다.

형변환 연산자

다음 예를 보세요.

C++11 공통 구문 - 명시적 유형 변환 연산자의 특정 사용법

이때 복소수 클래스의 프로토타입은 double형의 형변환 연산자를 정의합니다. 이를 사용하면 다음과 같이 사용할 수 있습니다.

C++11 공통 구문 - 명시적 유형 변환 연산자의 특정 사용법

출력 결과는 다음과 같습니다.

C++11 공통 구문 - 명시적 유형 변환 연산자의 특정 사용법

complex는 출력 연산자를 지원하지 않으므로 컴파일러는 나중에 출력하기 위해 c1을 double 유형으로 변환하려고 시도합니다. 지금까지는 너무 좋았습니다.

정말로 double로 변환하고 싶나요?

아래 코드를 보세요.

C++11 공통 구문 - 명시적 유형 변환 연산자의 특정 사용법

수학적 관점에서 보면 2.23606이 출력되어야 합니다. 하지만 실제로 이 코드는 컴파일조차 할 수 없습니다. 그 이유는 컴파일러에 이 코드에 대한 두 가지 옵션이 있기 때문입니다. 하나는 c1을 double로 변환한 다음 1을 추가하는 것이고, 다른 하나는 1을 복소수(1+0i)로 변환한 다음 복소수 덧셈을 수행하는 것입니다.

프로그래머들의 아이디어가 필요합니다.

명시적 유형 변환 연산자

모호성을 제거하기 위한 한 가지 방법은 명시적을 사용하여 암시적 이중 유형 변환을 금지하는 것입니다. 코드는 다음과 같습니다.

C++11 공통 구문 - 명시적 유형 변환 연산자의 특정 사용법

암시적 유형 변환을 수행할 수 없으므로 다음 코드는 컴파일 오류가 발생합니다.

C++11 공통 구문 - 명시적 유형 변환 연산자의 특정 사용법

이중 출력으로의 변환이 올바르지 않거나 올바르지 않기 때문에 큰 문제는 아닙니다. 아니, 얘기하기 쉽지요. 코드는 출력 연산자 오버로딩을 통해 복수형 출력 기능을 제공했습니다.

출력은 다음과 같습니다:

C++11 공통 구문 - 명시적 유형 변환 연산자의 특정 사용법

이것이 우리가 정말로 원하는 것입니다!

추가하기

원한다면 다음과 같이 코딩할 수도 있습니다.

C++11 공통 구문 - 명시적 유형 변환 연산자의 특정 사용법

이 기사가 도움이 되었나요? 더 많은 사람들과 공유해주세요.

관련 권장사항:

HTML 연산자, 유형 변환

C# 사용자 정의 암시적 및 명시적 변환

C 언어 튜토리얼

위 내용은 C++11 공통 구문 - 명시적 유형 변환 연산자의 특정 사용법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿