Поки є такий оператор - **
у Python мені було цікаво, чому у Java та C ++ теж немає.
Це легко зробити для класів, які ви визначаєте на C ++, з перевантаженням оператора (і я вважаю, що таке можливо і в Java), але якщо говорити про примітивні типи, такі як int, double і так далі, вам доведеться використовувати бібліотеку функція на зразок Math.power
(і зазвичай доводиться кидати обидві, щоб подвоїтись).
Отже - чому б не визначити такого оператора для примітивних типів?
^
оператора не відповідає перевазі експоненції. Розглянемо вираз a + b ^ c
. У математиці спочатку виконується експоненція ( b ^ c
), потім додається отримана сила a
. У C ++ додавання виконується спочатку ( a + b
), потім ^
виконується оператор c
. Тож навіть якщо ви реалізували ^
оператора з метою експоненції, пріоритет здивує всіх.
^
це XOR в C ++. Рекомендується, що перевантажений оператор не повинен відрізнятися від того, який робить примітивний тип даних за допомогою нього.
++
оператора або !
оператора тощо. ін. означати експоненцію. Але ви все одно не можете, тому що оператори, про яких ви говорите, приймають лише один аргумент; експоненція вимагає двох аргументів.