Tài liệu tham khảo không hoạt động giống như con trỏ: đối với con trỏ bạn có thể có 'consters con trỏ' (type * const p
) và 'con trỏ tới const' ( const type * p
hoặctype const * p
).
Nhưng bạn không có điều này để tham khảo: một tài liệu tham khảo sẽ luôn đề cập đến cùng một đối tượng; theo nghĩa đó, bạn có thể xem xét rằng 'tài liệu tham khảo' là 'tài liệu tham khảo' (giống như cách bạn có thể có 'con trỏ').
Do đó, một cái gì đó như 'type & const ref' là không hợp pháp. Bạn chỉ có thể có 'tham chiếu đến loại' (type &ref
) và 'tham chiếu đến loại không đổi' ( const type &ref
hoặctype const &ref
; cả hai đều tương đương chính xác).
Một điều cuối cùng: ngay cả khi const type
tiếng Anh nghe đúng hơn, viết type const
cho phép hiểu hệ thống hơn về khai báo "từ phải sang trái":int const & ref
có thể được đọc có 'ref là một tham chiếu đến một hằng số int'. Hoặc ví dụ phức tạp hơn : int const * const & ref
, ref là một tham chiếu đến một con trỏ không đổi đến một hằng số int.
Kết luận: trong câu hỏi của bạn, cả hai đều chính xác tương đương.