将 shared_ptr 作为参数传递给接受类类型对象的函数
Posted
技术标签:
【中文标题】将 shared_ptr 作为参数传递给接受类类型对象的函数【英文标题】:pass shared_ptr as a argument to a function which accepts object of a class type 【发布时间】:2014-11-11 11:24:30 【问题描述】:我想知道,是否可以将 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】:您应该在shared_ptr
上调用get
函数。
myStuff->ReportResults( aResultBptr.get() );
【讨论】:
以上是关于将 shared_ptr 作为参数传递给接受类类型对象的函数的主要内容,如果未能解决你的问题,请参考以下文章
是否可以将类类型的对象作为参数传递给另一个类,这样我就不必再次初始化? (Python 3.x)