ในขณะที่มีโอเปอเรเตอร์ดังกล่าว - **ใน Python ฉันสงสัยว่าทำไม Java และ C ++ จึงไม่มีตัวนี้เช่นกัน
มันง่ายที่จะสร้างคลาสที่คุณกำหนดใน C ++ พร้อมกับโอเปอเรเตอร์การบรรทุกเกินพิกัด (และฉันเชื่อว่ามันเป็นไปได้ใน Java) แต่เมื่อพูดถึงประเภทดั้งเดิมเช่น int, double และอื่น ๆ คุณจะต้องใช้ไลบรารี่ ฟังก์ชั่นเช่นMath.power(และมักจะต้องร่ายทั้งสองครั้ง)
ดังนั้น - ทำไมไม่กำหนดผู้ประกอบการดังกล่าวสำหรับประเภทดั้งเดิม?
^ผู้ประกอบการไม่ตรงกับความสำคัญของการยกกำลัง a + b ^ cพิจารณาการแสดงออก ในวิชาคณิตศาสตร์การยกกำลังจะดำเนินการเป็นอันดับแรก ( b ^ c) จากนั้นจะเพิ่มกำลังที่aได้ ใน C ++ นอกจากนี้จะดำเนินการเป็นครั้งแรก ( a + b) จากนั้นผู้ประกอบการจะดำเนินการกับ^ cดังนั้นแม้ว่าคุณจะใช้งาน^โอเปอเรเตอร์เพื่อหมายถึงการยกกำลัง แต่ความสำคัญก็จะทำให้ทุกคนประหลาดใจ
                ^เป็น XOR ใน C ++ ขอแนะนำว่าตัวดำเนินการที่โอเวอร์โหลดไม่ควรแตกต่างจากชนิดข้อมูลดั้งเดิมที่ใช้
                ++ผู้ปฏิบัติงานหรือ!ผู้ปฏิบัติงานเป็นต้น อัล หมายถึงการยกกำลัง แต่คุณทำไม่ได้เพราะผู้ดำเนินการที่คุณพูดคุยยอมรับเพียงข้อโต้แย้งเดียว การยกกำลังต้องการสองอาร์กิวเมนต์