我有以下代碼:初始化的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