Tham chiếu không phải const phải được khởi tạo bằng giá trị l. Nếu bạn có thể khởi tạo chúng với thời gian, sau đó những gì sau đây sẽ làm gì? tài liệu tham khảo
int& foo = 5;
foo = 6; // ?!
const
có thuộc tính đặc biệt mà họ kéo dài tuổi thọ của trọng tài, và vì chúng là const
, không có khả năng rằng bạn sẽ cố gắng sửa đổi một cái gì đó mà không ngồi trong bộ nhớ. Ví dụ:
const int& foo = 5;
foo = 6; // not allowed, because foo is const.
Hãy nhớ rằng tham chiếu thực sự phải đề cập đến điều gì đó, không chỉ là các biến tạm thời. Ví dụ: nội dung sau hợp lệ:
int foo = 5;
int& bar = foo;
bar = 6;
assert(foo == 6);
Nguồn
2010-02-23 00:46:32
Chờ đợi, điều đó có nghĩa là tôi có thể sử dụng 'const classA & ref = ReturnsClassAByValue();'? Tôi nghĩ nhiệt độ sẽ chết trên hàng kế tiếp. – Lucas
Có, bạn có thể sử dụng nó. Tạm thời sẽ kéo dài miễn là biến tham chiếu thực hiện: http://herbsutter.spaces.live.com/blog/cns!2D4327CC297151BB!378.entry –
Tuyệt vời, cảm ơn. Trên SO, bạn học một cái gì đó mới mỗi ngày ... – Lucas