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