c++ - 将 shared_ptr 作为参数传递给接受类类型对象的函数

标签 c++ boost shared-ptr

我想知道,是否可以将 shared_ptr 作为参数传递给接受类类型指针的函数

例子

class class_A_type
{
 bla bl a

 private:
    IStuff *mStuff;
}

class IStuff
{
  public:
    IReporter(){};
    virtual ~IReporter(){};
    virtual void ReportResults( class_A_RESULT_TYPE *pResult) = 0;
};

void class_A_type::SendResultBack( bool status, std::string statusString )
{
        boost::shared_ptr< class_A_RESULT_TYPE >aResultBptr( new class_A_RESULT_TYPE ( mStuff, GetPropertyName() ) );
        bool lbool = false;
        std::string lstr = "running";
        aResultBptr->setStatus( lbool, lstr );
        myStuff->ReportResults( aResultBptr );// ERROR  HOw to pass shared _ptr ?? 
}

最佳答案

您应该在 shared_ptr 上调用 get 函数。

myStuff->ReportResults( aResultBptr.get() );

关于c++ - 将 shared_ptr 作为参数传递给接受类类型对象的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26863744/

相关文章:

c++ - 如何在C++类中正确使用复制构造函数和赋值

c++ - 有没有办法让派生类的容器在检索时被识别为派生类而不是基类?

c++ - Boost Asio延迟写入tcp套接字

c++ - 我们如何从成员函数返回一个 unique_pointer 成员?

c++ - unique_ptr 与 shared_ptr 中的删除器类型

c++ - 我可以在 C++ 程序之外使用随机内存地址访问随机数据吗

c++ - 迭代中的指针算法是否溢出安全?

c++ - Turtle(模拟框架)编译错误

c++ - 互斥作为类成员

c++ - 在 dll 接口(interface)中使用 shared_ptr