Referanslar işaretçilerle aynı şekilde çalışmaz: işaretçiler için 'sabit işaretçiler' ( type * const p
) ve 'sabitlemek için işaretçiler' ( const type * p
veya type const * p
) kullanabilirsiniz.
Ancak referanslar için buna sahip değilsiniz: bir referans her zaman aynı nesneyi ifade eder; bu anlamda 'referansların' 'const referansları' olduğunu düşünebilirsiniz ('const işaretçileri' olabilir gibi).
Bu nedenle 'type & const ref' gibi bir şey yasal değildir. Yalnızca 'tipe referans' ( type &ref
) ve 'sabit türe referans' ( const type &ref
ya da type const &ref
her ikisi de tam olarak eşdeğerdir) olabilir.
Son bir şey: const type
İngilizce'de daha doğru görünse bile , yazma type const
"sağdan sola" bildirimlerinin daha sistematik bir şekilde anlaşılmasını sağlar: int const & ref
okunabilir 'ref sabit int'e bir referanstır'. Ya da daha karmaşık bir örnek: int const * const & ref
ref, sabit int'e sabit bir göstergeye yapılan göndermedir.
Sonuç: sorunuzda her ikisi de tam olarak eşdeğerdir.