**
파이썬 에는 그러한 연산자가 있지만 Java와 C ++에 왜 없는지 궁금합니다.
연산자 오버로딩을 사용하여 C ++에서 정의한 클래스를 만들기는 쉽지만 (그리고 Java에서도 가능하다고 생각합니다.) int, double 등과 같은 기본 유형에 대해 이야기 할 때 라이브러리를 사용해야합니다 같은 기능 Math.power
(그리고 일반적으로 두 배로 모두 캐스팅해야 함).
그렇다면 왜 원시 유형에 대해 그러한 연산자를 정의하지 않습니까?
^
연산자의 우선 순위가 지수 우선 순위와 일치하지 않기 때문에 중요 합니다. 표현을 고려하십시오 a + b ^ c
. 수학에서 지수가 먼저 수행 b ^ c
된 다음 ( )에 결과 거듭 제곱이에 추가됩니다 a
. C ++에서는 덧셈이 먼저 수행 된 a + b
다음 ( ) ^
연산자가으로 수행됩니다 c
. 따라서 ^
지수를 의미 하기 위해 연산자를 구현하더라도 우선 순위는 모든 사람을 놀라게 할 것입니다.
++
연산자 또는 !
연산자 등에 과부하가 걸리는 C ++ 프로그래머의 역량에 대해 심각하게 의문을 제기합니다 . 알. 지수를 의미합니다. 그러나 당신이 이야기하는 연산자는 오직 하나의 인수만을 받아들이 기 때문에 어쨌든 할 수 없습니다. 지수화에는 두 가지 인수가 필요합니다.