Trong khi trả lời this question Tôi thấy hơi bối rối. Chúng ta đều biết rằng điều này hoạt động tốt do ngữ nghĩa sao chép C++:Đối tượng trên heap và tài liệu tham khảo
int *some_obj = new int(42);
int a_copy = *some_obj;
delete some_obj;
printf("The answer is %d\n", a_copy);
Nhưng còn điều này thì sao?
int *some_obj = new int(42);
int& a_ref = *some_obj;
delete some_obj;
printf("The answer is %d\n", a_ref);
Truy cập này có bị xóa bộ nhớ không?
Có thể được hỏi nhiều lần trong các hình thức khác nhau, nhưng điều này không thân thiện với Google. Địa ngục, tôi không thể làm cho một danh hiệu phong nha.
Bây giờ tôi đã đọc một phần của trang Wikipedia trên đó, nó giải thích rõ ràng trong đoạn cuối của [phần này] (http://en.wikipedia.org/wiki/Reference_ (C% 2B% 2B) #Relationship_to_pointers). Điều gì về việc trả về các tham chiếu đến các thời gian (A là một số lớp ngẫu nhiên) 'A & func() {return A(); } '? – orlp
Điều đó có cùng vấn đề. Bạn đang trả về một tham chiếu đến một đối tượng không còn tồn tại khi người gọi nhận được nó. –
Được rồi, cảm ơn vì đã giải thích. – orlp