我有一个类,它的结构是这样的:
class CLSS
{
public:
CLSS(const std::shared_ptr<someType>& pobj)
{
std::shared_ptr<someType> obj = pobj;
obj->somefunc("DDDD")
}
~CLSS()
{
}
};
可以解决现在的问题。然而,当我将obj->info("DDDD")
的相同函数放入析构函数中时,它返回错误,即:
...
~CLSS()
{
obj->info("DDDD")
}
....
--------------- 编辑
我试着
class CLSS
{
public:
std::shared_ptr<someType> obj;
CLSS(const std::shared_ptr<someType>& pobj)
{
obj = pobj;
obj->somefunc("DDDD")
}
~CLSS()
{
}
};
但是仍然不能编译,错误不是很可读。
obj
是构造函数中的局部变量。它在构造函数结束时被销毁。你需要将它声明为类的成员。