Tôi có một đối tượng (Z) xuất phát từ hai đối tượng khác (A và B).Thừa kế đôi của enable_shared_from_this
A và B có nguồn gốc từ enable_shared_from_this<>
, tương ứng enable_shared_from_this<A>
và enable_shared_from_this<B>
.
Tất nhiên tôi gọi shared_from_this()
trên Z. Và tất nhiên trình biên dịch báo cáo điều này là mơ hồ.
Câu hỏi của tôi là:
- là nó an toàn để thừa hưởng hai lần từ
enable_shared_from_this<>
hoặc nó sẽ tạo ra hai tội tham khảo tách - Nếu không an toàn, làm thế nào để giải quyết việc này (xấu!)?
Lưu ý: Tôi đã tìm thấy câu hỏi khác bad weak pointer when base and derived class both inherit from boost::enable_shared_from_this nhưng nó không thực sự trả lời. Tôi có nên sử dụng thủ thuật virtual
không?
bản sao có thể có của [tăng chia sẻ \ _từ \ _này và nhiều thừa kế] (http://stackoverflow.com/questions/14939190/boost-shared-from-this-and-multiple-inheritance) – user