Tôi biết tiêu chuẩn có ngoại lệ về việc kéo dài tuổi thọ của thời gian mà về cơ bản nói ràng buộc một tham chiếu const trong một hàm tạo sẽ không kéo dài tuổi thọ, nhưng điều này cũng áp dụng cho các chữ? Ví dụ:Có thể một const int ref trong một constructor một cách an toàn liên kết với một chữ?
class C {
private:
const int& ref;
public:
C(const int& in)
: ref{in}
{ }
};
Nếu tôi có một hàm trả về một đối tượng kiểu này
C f() {
C c(2);
return c;
}
giá trị của c.ref
sẽ được định nghĩa trong người gọi nếu tôi biết đó là ràng buộc để một chữ?
Câu trả lời có lẽ phụ thuộc vào nếu trình biên dịch tạo ra một giá trị tĩnh toàn cầu cho đen và các điểm tại đó, hoặc nếu nó tạo ra một giá trị ngăn xếp để trỏ vào. Có thể đi một trong hai cách. –
Tại sao không chỉ truyền int theo giá trị? Nó sẽ hiệu quả hơn. – cppguy
@cppguy đây là một ví dụ rất nhỏ về vấn đề thực tế. –