Điều gì về việc gọi shared_from_this cho các đối tượng được cấp phát stack? enable_shared_from_this trong danh sách lớp cơ sở là chỉ báo cho người dùng của lớp dẫn xuất để tạo ra nó chỉ trên heap (và chúng tôi chỉ hy vọng cho việc sử dụng lớp chính xác) hoặc chúng ta có thể có một số bảo vệ mạnh hơn chống lại các lỗi như vậy? Hoặc tôi không hiểu một số khoảnh khắc? đang
Ví dụ: enable_shared_from_this và các đối tượng trên stack
class C : public enable_shared_from_this<C> { public: shared_ptr<C> method() { shared_from_this(); } };
void func() { C c; shared_ptr<C> ptr = c.method(); // exception comming from shared_from_this() }
Bạn hỏi chính xác điều gì? Bạn có muốn biết liệu có cách nào để ngăn chặn việc gọi 'shared_from_this()' trên các đối tượng được phân bổ không? –