【C++】shared_from_this() be ambiguous

  • 如果父类继承了 std::enable_shared_from_this
  • 子类也继承了 std::enable_shared_from_this
  • 那么,在子类里获取 shared_from_this 拿到的是 父类,会报错
B::insertme
terminate called after throwing an instance of 'std::bad_weak_ptr'
  what():  bad_weak_ptr
  	*/
  • 子类需要把自己的shared ptr 传递给方法用,此时必须做转换
  • 大神的分析
  • 说子类不继承,只让父类继承:
  • 子类如果用 shared frome this ,要做个转换
父类转为子类C的 :
std::static_pointer_cast

你可能感兴趣的:(c/c++笔面应用实战,c++,开发语言)