使用 shared_ptr 进行类型定义,如下所示:
typedef std::shared_ptr<MyObject> MyObjectPtr;
有一个库从方法中返回此类型:
MyObjectPtr p = myLibrary->getMyObject(1);
如果我在初始化后立即在p
上调用某个方法,则可以正常工作:
p->getProperty();
但是我尝试将p
传递给另一个方法,然后在p
上调用方法,它不起作用:
myMethod(p);
当被调用的方法是:
void myMethod(MyObjectPtr p)
{
p->getProperty();
}
我收到此错误:
symbol lookup error
undefined symbol
MyProgram::myMethod(std::shared_ptr<MyProgram::MyObject>)
如何解决该错误,以便在传递后可以在p
上调用该方法?