Meskipun ada operator seperti itu - **
dengan Python, saya bertanya-tanya mengapa Java dan C ++ tidak memilikinya juga.
Sangat mudah untuk membuat satu untuk kelas yang Anda definisikan di C ++ dengan operator overloading (dan saya percaya hal seperti itu mungkin juga di Jawa), tetapi ketika berbicara tentang tipe primitif seperti int, double dan sebagainya, Anda harus menggunakan perpustakaan berfungsi seperti Math.power
(dan biasanya harus melakukan keduanya untuk menggandakan).
Jadi - mengapa tidak mendefinisikan operator semacam itu untuk tipe primitif?
^
operator tidak sesuai dengan prioritas eksponen. Pertimbangkan ungkapannya a + b ^ c
. Dalam matematika, eksponensial dilakukan pertama kali ( b ^ c
), kemudian kekuatan yang dihasilkan ditambahkan a
. Dalam C ++, penambahan dilakukan terlebih dahulu ( a + b
) kemudian ^
operator dilakukan dengan c
. Jadi, bahkan jika Anda benar-benar mengimplementasikan ^
operator berarti eksponensial, prioritasnya akan mengejutkan semua orang.
^
adalah XOR dalam C ++. Disarankan agar operator yang kelebihan beban tidak melakukan apa pun yang dilakukan oleh tipe data primitif.
++
operator atau !
operator et. Al. berarti eksponen. Tetapi Anda tidak dapat melakukannya, karena operator yang Anda bicarakan hanya menerima satu argumen; eksponensial membutuhkan dua argumen.