簡體   English   中英

enable_shared_from_this和繼承

[英]enable_shared_from_this and inheritance

我有一個繼承自enable_shared_from_this<type> ,以及一個繼承enable_shared_from_this<type>類型。 現在我不能使用shared_from_this方法,因為它返回基類型,並且在特定的派生類方法中我需要派生類型。 從這個直接構造shared_ptr是否有效?

編輯:在一個相關的問題中,我如何從一個類型為shared_ptr<base>的rvalue移動到一個shared_ptr<derived>類型? 我使用dynamic_cast來驗證它確實是正確的類型,但現在我似乎無法完成實際的移動。

獲得shared_ptr<Base> ,可以使用static_pointer_cast將其轉換為shared_ptr<Derived>

你不能直接從this創建一個shared_ptr ; 這相當於:

shared_ptr<T> x(new T());
shared_ptr<T> y(x.get()); // now you have two separate reference counts

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM