Referensi tidak bekerja dengan cara yang sama dengan pointer: untuk pointer Anda dapat memiliki 'pointer pointers' ( type * const p
) dan 'pointer ke const' ( const type * p
atau type const * p
).
Tetapi Anda tidak memiliki ini untuk referensi: referensi akan selalu merujuk ke objek yang sama; dalam pengertian itu Anda dapat mempertimbangkan bahwa 'referensi' adalah 'referensi const' (dengan cara yang sama Anda dapat memiliki 'pointer pointer').
Karenanya sesuatu seperti 'type & const ref' tidak sah. Anda hanya dapat memiliki 'referensi ke tipe' ( type &ref
) dan 'referensi ke tipe konstan' ( const type &ref
atau type const &ref
; keduanya persis sama).
Satu hal terakhir: walaupun const type
terdengar lebih benar dalam bahasa Inggris, menulis type const
memungkinkan pemahaman yang lebih sistematis tentang deklarasi "kanan ke kiri": int const & ref
dapat dibaca memiliki 'ref adalah referensi ke int konstan'. Atau contoh yang lebih rumit int const * const & ref
:, ref adalah referensi ke pointer konstan ke int konstan.
Kesimpulan: dalam pertanyaan Anda, keduanya persis sama.