ใน C++ เราสามารถโอเวอร์โหลดโอเปอเรเตอร์บางตัวได้ เช่น +, -, [], -> เป็นต้น แต่เราไม่สามารถโอเวอร์โหลดโอเปอเรเตอร์ใดๆ ในนั้นได้ โอเปอเรเตอร์บางตัวไม่สามารถโอเวอร์โหลดได้ โอเปอเรเตอร์เหล่านี้เป็นเหมือนด้านล่าง
- ? “.” การเข้าถึงสมาชิกหรือตัวดำเนินการจุด
- ? “? :” ตัวดำเนินการแบบ Ternary หรือแบบมีเงื่อนไข
- ? “::” ตัวดำเนินการแก้ไขขอบเขต
- ? “.*” ชี้ไปที่โอเปอเรเตอร์ของสมาชิก
- ? “sizeof” ตัวดำเนินการขนาดวัตถุ
- ? “typeid” ตัวดำเนินการประเภทวัตถุ
โอเปอเรเตอร์เหล่านี้ไม่สามารถโอเวอร์โหลดได้ เพราะหากเราโอเวอร์โหลดโอเปอเรเตอร์เหล่านี้จะทำให้เกิดปัญหาในการเขียนโปรแกรมอย่างร้ายแรง
ตัวอย่างเช่น ตัวดำเนินการ sizeof จะคืนค่าขนาดของวัตถุหรือประเภทข้อมูลเป็นตัวถูกดำเนินการ ซึ่งจะประเมินโดยคอมไพเลอร์ ไม่สามารถประเมินได้ระหว่างรันไทม์ ดังนั้นเราจึงไม่สามารถโอเวอร์โหลดได้