Podwójne dziedziczenie enable_shared_from_this
Mam obiekt (Z), który pochodzi od dwóch innych obiektów (A i B).
Oba A i B pochodzą zenable_shared_from_this<>
, odpowiednioenable_shared_from_this<A>
ienable_shared_from_this<B>
.
Oczywiście, że dzwonięshared_from_this()
na Z. Oczywiście kompilator zgłasza to jako niejednoznaczne.
Moje pytania to:
czy można bezpiecznie dziedziczyć dwa razyenable_shared_from_this<>
lub czy utworzy dwie oddzielne liczby referencyjne (złe!)Jeśli nie jest bezpieczny, jak rozwiązać ten problem?Uwaga: znalazłem to inne pytaniezły słaby wskaźnik, gdy klasa bazowa i pochodna dziedziczą po boost :: enable_shared_from_this ale tak naprawdę nie odpowiada. Czy powinienem użyćvirtual
sztuczka też?