**
Python'da böyle bir operatör varken, Java ve C ++ 'ın da neden sahip olmadığını merak ediyordum.
C ++ 'da tanımladığınız sınıflar için operatör aşırı yüklemesi ile bir tane yapmak kolaydır (ve Java ile de böyle bir şey mümkün olduğuna inanıyorum), ancak int, double ve benzeri gibi ilkel türlerden bahsederken, kütüphane kullanmanız gerekir. gibi işlev görür Math.power
(ve genellikle ikisini de ikiye katlarlar).
Öyleyse - neden ilkel türler için böyle bir operatör tanımlamıyorsunuz?
^
eşleşmediğinden önemli. İfadeyi düşünün a + b ^ c
. Matematikte, üstel ilk önce ( b ^ c
) gerçekleştirilir , ardından elde edilen güç eklenir a
. C ++ 'da önce ekleme ( a + b
) ^
yapılır, ardından operatör ile gerçekleştirilir c
. Yani ^
operatörü üsteleme yapmak için uygulasanız bile, öncelik herkesi şaşırtacaktır.
^
C ++ 'da bir XOR'dir . Aşırı yüklenmiş bir operatörün, ilkel bir veri tipinin bunu kullanarak yaptıklarından hiçbir şey yapmaması önerilir.
++
Operatörü veya operatörü aşırı yükleyen herhangi bir C ++ programcısının yeterliliğini ciddi bir şekilde sorgulayacağım !
. ark. üstel demek. Ama yine de yapamazsınız, çünkü konuştuğunuz operatörler yalnızca bir argümanı kabul eder; üstelleştirme iki argüman gerektirir.