Saya mengerti sebagian besar operator overloading, dengan pengecualian dari operator akses anggota ->
, .*
, ->*
dll
Secara khusus, apa yang diteruskan ke fungsi operator ini, dan apa yang harus dikembalikan?
Bagaimana fungsi operator (mis. operator->(...)
) Mengetahui anggota yang dirujuk? Bisakah itu tahu? Apakah itu perlu diketahui?
Akhirnya, adakah pertimbangan const yang perlu dipertimbangkan? Misalnya, ketika melakukan overload seperti operator[]
, umumnya Anda memerlukan versi const dan non-const. Apakah operator akses anggota memerlukan versi const dan non-const?
const
dan yang bukan const
versi operator->
tidak diperlukan , tetapi menyediakan keduanya dapat bermanfaat.
->*
dan .*
. Bahkan, itu bahkan tidak menyebutkannya! Saya merasa mereka jarang berada di FAQ, tetapi saya dengan senang hati menghubungkan pertanyaan ini dari FAQ. Tolong jangan tutup ini sebagai duplikat dari FAQ!