をテスト:は、ユニットにunique_ptrを初期化し、私は次のコードを持っている
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);
コード:ユニットテストファイルで、今
foo::foo() : mean(nullptr) {
}
void foo::setMean(std::shared_ptr<std::valarray<double>> input){
mean = input;
}
:
class foo {
public:
foo();
void setMean(std::shared_ptr<std::valarray<double>> input);
private:
std::shared_ptr<std::valarray<double>> mean;
}
に.cpp
ファイルを制御がsetMean
の機能の中に入るときに壊れます。
unique_ptr
の初期化に問題がありますか?
「meanObj」はどこで初期化しますか? – 101010
どこにも実際にfooオブジェクトがありません – lsbbo
なぜあなたは 'unique_ptr'を必要としますか?ちょうど 'foo meanObj;を実行してください。 meanObj.setMean(入力); ' – Kevin