Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ตัวดำเนินการที่ไม่สามารถโอเวอร์โหลดใน C++


ใน C++ เราสามารถโอเวอร์โหลดโอเปอเรเตอร์บางตัวได้ เช่น +, -, [], -> เป็นต้น แต่เราไม่สามารถโอเวอร์โหลดโอเปอเรเตอร์ใดๆ ในนั้นได้ โอเปอเรเตอร์บางตัวไม่สามารถโอเวอร์โหลดได้ โอเปอเรเตอร์เหล่านี้เป็นเหมือนด้านล่าง

  • ? “.” การเข้าถึงสมาชิกหรือตัวดำเนินการจุด
  • ? “? :” ตัวดำเนินการแบบ Ternary หรือแบบมีเงื่อนไข
  • ? “::” ตัวดำเนินการแก้ไขขอบเขต
  • ? “.*” ชี้ไปที่โอเปอเรเตอร์ของสมาชิก
  • ? “sizeof” ตัวดำเนินการขนาดวัตถุ
  • ? “typeid” ตัวดำเนินการประเภทวัตถุ

โอเปอเรเตอร์เหล่านี้ไม่สามารถโอเวอร์โหลดได้ เพราะหากเราโอเวอร์โหลดโอเปอเรเตอร์เหล่านี้จะทำให้เกิดปัญหาในการเขียนโปรแกรมอย่างร้ายแรง

ตัวอย่างเช่น ตัวดำเนินการ sizeof จะคืนค่าขนาดของวัตถุหรือประเภทข้อมูลเป็นตัวถูกดำเนินการ ซึ่งจะประเมินโดยคอมไพเลอร์ ไม่สามารถประเมินได้ระหว่างรันไทม์ ดังนั้นเราจึงไม่สามารถโอเวอร์โหลดได้