ผมเข้าใจมากไปผู้ประกอบการส่วนใหญ่มีข้อยกเว้นของผู้ประกอบการเข้าถึงสมาชิกที่->
, .*
, ->*
ฯลฯ
โดยเฉพาะอย่างยิ่งสิ่งที่ส่งผ่านไปยังฟังก์ชันตัวดำเนินการเหล่านี้และสิ่งที่ควรส่งคืน?
ฟังก์ชันตัวดำเนินการ (เช่นoperator->(...)
) รู้ได้อย่างไรว่าสมาชิกใดถูกอ้างถึง? มันรู้ได้ไหม? มันจำเป็นต้องรู้หรือไม่?
สุดท้ายมีข้อพิจารณาใดบ้างที่ต้องนำมาพิจารณา? ตัวอย่างเช่นเมื่อมีการใช้งานมากเกินไปoperator[]
โดยทั่วไปคุณจะต้องมีทั้งเวอร์ชัน const และไม่ใช่ const ตัวดำเนินการเข้าถึงสมาชิกต้องการเวอร์ชัน const และ non-const หรือไม่?
const
และไม่ใช่const
เวอร์ชันoperator->
ที่ไม่จำเป็นแต่การให้ทั้งสองอย่างจะมีประโยชน์
->*
และ.*
. ในความเป็นจริงมันไม่ได้พูดถึงพวกเขา! ฉันรู้สึกว่าเป็นเรื่องยากที่จะอยู่ในคำถามที่พบบ่อย แต่ฉันยินดีที่จะเชื่อมโยงคำถามนี้จากคำถามที่พบบ่อย โปรดอย่าปิดสิ่งนี้เนื่องจากเป็นการหลอกลวงคำถามที่พบบ่อย!