そのような演算子がありますが**、Pythonでは、なぜJavaとC ++にも演算子がないのかと思っていました。
演算子のオーバーロードを使用してC ++で定義するクラスに簡単に作成できます(Javaでもこのようなことが可能だと思います)が、int、doubleなどのプリミティブ型について話すときは、ライブラリを使用する必要がありますのような関数Math.power(通常、両方をdoubleにキャストする必要があります)。
だから-なぜプリミティブ型にそのような演算子を定義しないのですか?
^演算子の優先順位がべき乗の優先順位と一致しないため、問題になります。式を考えてくださいa + b ^ c。数学では、べき乗が最初に実行され(b ^ c)、結果の累乗がに追加されaます。C ++では、最初に加算が実行され(a + b)、次に^演算子がで実行されcます。その^ため、べき乗を意味する演算子を実装した場合でも、優先順位はすべての人を驚かせるでしょう。
++演算子または!演算子et をオーバーロードするC ++プログラマーの能力に真剣に疑問を呈します。等 べき乗を意味します。しかし、とにかくすることはできません。なぜなら、あなたが話す演算子は引数を1つしか受け入れないからです。べき乗には2つの引数が必要です。