我想知道,是否可以将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 ??
}

最佳答案

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

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

10-07 18:14