Хотя **в Python есть такой оператор , мне было интересно, почему в Java и C ++ его тоже нет.
Это легко сделать для классов, которые вы определяете в C ++ с перегрузкой операторов (и я считаю, что это возможно и в Java), но когда речь идет о примитивных типах, таких как int, double и так далее, вам придется использовать библиотеку функция как Math.power(и обычно приходится приводить оба к удвоению).
Итак, почему бы не определить такой оператор для примитивных типов?
^оператора не совпадает с приоритетом возведения в степень. Рассмотрим выражение a + b ^ c. В математике сначала возводится возведение в степень ( b ^ c), затем результирующая степень прибавляется к a. В C ++ сначала выполняется сложение ( a + b), затем выполняется ^оператор c. Таким образом, даже если вы реализовали ^оператор для обозначения возведения в степень, приоритет превзойдет всех.
^это XOR в C ++. Рекомендуется, чтобы перегруженный оператор не отличался от того, что делает примитивный тип данных, используя его.
++оператора или !оператора и т.д. и др. означать экспонату. Но в любом случае вы не можете, потому что операторы, о которых вы говорите, принимают только один аргумент; возведение в степень требует двух аргументов.