我有以下代码:初始化的unique_ptr测试
class foo {
public:
foo();
void setMean(std::shared_ptr<std::valarray<double>> input);
private:
std::shared_ptr<std::valarray<double>> mean;
}
的.cpp
文件:
foo::foo() : mean(nullptr) {
}
void foo::setMean(std::shared_ptr<std::valarray<double>> input){
mean = input;
}
现在,在单元测试文件:
std::shared_ptr<std::valarray<double>> input = std::make_shared<std::valarray<double>>(std::initializer_list<double>{0.0, 0.0});
std::unique_ptr<foo> meanObj;
meanObj->setMean(input);
代码当控件进入setMean
函数时打破。
unique_ptr
的初始化有问题吗?
你在哪里初始化'meanObj'? – 101010
实际上没有任何foo对象 – lsbbo
为什么你甚至需要'unique_ptr'?只要做'foo meanObj; meanObj.setMean(input);' – Kevin