Посилання не працює так само, як покажчики: для покажчиків у вас можуть бути "const pointers" ( type * const p
) та "pointer to const" ( const type * p
або type const * p
).
Але у вас цього немає для довідок: посилання завжди буде посилатися на один і той же об'єкт; в цьому сенсі ви можете вважати, що "посилання" - це "посилання на const" (так само, як у "покажчиків const").
Тому щось на зразок "type & const ref" не є законним. Ви можете мати лише "посилання на тип" ( type &ref
) та "посилання на постійний тип" ( const type &ref
абоtype const &ref
; обидва цілком еквівалентні).
І останнє: навіть якщо const type
англійська мова звучить правильніше, написання type const
дозволяє більш систематично розуміти декларації "праворуч ліворуч": int const & ref
може бути прочитане має "ref - це посилання на постійний int". Або більш складний приклад:, int const * const & ref
ref - це посилання на постійний вказівник на постійний int.
Висновок: у вашому питанні обидва рівнозначні.