weak_ptr<User_Class> 是无指针类型

2 c++ boost smart-pointers

我在我的项目中使用了普通指针。我在内存方面遇到了一些问题,并更改了weak_ptr 的普通指针。我有错误:

错误:“->”的基操作数具有非指针类型“boost::weak_ptr”

为什么?我该怎么办?

Igo*_* R. 5

首先,锁定weak_ptr - 如果它没有过期,你会得到适当的shared_ptr

shared_ptr<my_type> p = weak.lock();
if (p)
  p->do_something();
else
  // expired!
Run Code Online (Sandbox Code Playgroud)