Mam obiekt (Z), który pochodzi od dwóch innych obiektów (A i B).Podwójne dziedziczenie enable_shared_from_this
A i B pochodzą z enable_shared_from_this<>
, odpowiednio enable_shared_from_this<A>
i enable_shared_from_this<B>
.
Oczywiście nazywam się shared_from_this()
na Z. I oczywiście kompilator zgłasza to jako niejednoznaczny.
Moje pytania są następujące:
- jest to bezpieczne, aby odziedziczyć dwa razy z
enable_shared_from_this<>
lub będzie utworzyć dwa oddzielne liczniki referencyjnych - Jeśli nie jest bezpieczne, jak mogę rozwiązać ten problem (zły!)?
Uwaga: Znalazłem to inne pytanie bad weak pointer when base and derived class both inherit from boost::enable_shared_from_this, ale tak naprawdę nie odpowiada. Czy powinienem również użyć sztuczki virtual
?
możliwy duplikat [boost shared \ _from \ _this and multiple dziedziczenie] (http://stackoverflow.com/questions/14939190/boost-shared-from-this-and-multiple-inititance) – user