lea*_*vst 0 c++ boost smart-pointers shared-ptr
使用任何一个boost::scoped_ptr或boost::shared_ptr我得到错误
1> *\algomanager.cpp(28):错误C2064:term不计算为带1个参数的函数
我有这样的代码...
class X{
boost::shared_ptr<cPreFilterProcess> preProcess;
public:
X(){
preProcess(new cPreFilterProcess(pars));
}
};
Run Code Online (Sandbox Code Playgroud)
我错过了什么?谢谢.
我神秘的玻璃魔法调试告诉我你做的是这样的:
class X{
boost::shared_ptr<cPreFilterProcess> preProcess;
public:
X(){
preProcess(new cPreFilterProcess(pars));
}
};
Run Code Online (Sandbox Code Playgroud)
您需要使用成员初始值设定项,如:
X() : preProcess(...){}
Run Code Online (Sandbox Code Playgroud)
或者使用,.reset因为你不能只指定一个像这样的指针:
X() { preProcess.reset(...); }
Run Code Online (Sandbox Code Playgroud)
我强烈推荐第一个选项.