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

时间:2014-11-11 11:24:31

标签: 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 ?? 
}

1 个答案:

答案 0 :(得分:2)

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

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