我有一个在其构造函数中接收共享指针并将其存储在弱指针中的类,但是我不确定如何(以及在何处)进行此转换。
class A {
public:
A(std::shared_ptr<B> Bptr);
private:
std::weak_ptr<B> m_Bptr;
};
我应该在传递给构造函数之前转换
shared_ptr
吗?通过像
shared_ptr
这样的初始化列表将weak_ptr
传递给A(std::shared_ptr<B> Bptr) : m_Bptr(Bptr) { }
是否按预期方式工作,或者我需要在构造函数的主体中进行显式转换? 最佳答案
template< class Y >
weak_ptr( const std::shared_ptr<Y>& r );
weak_ptr
的构造函数将shared_ptr
作为参数。因此,是的,只需传递shared_ptr
即可。来自cppreference: