ich den folgenden Code haben:Initialise unique_ptr in der Einheit testet
class foo {
public:
foo();
void setMean(std::shared_ptr<std::valarray<double>> input);
private:
std::shared_ptr<std::valarray<double>> mean;
}
Die .cpp
Datei:
foo::foo() : mean(nullptr) {
}
void foo::setMean(std::shared_ptr<std::valarray<double>> input){
mean = input;
}
Jetzt, in der Unit-Test-Datei:
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);
Der Code bricht, wenn die Steuerung innerhalb setMean
Funktion geht.
Gibt es ein Problem mit der Initialisierung des unique_ptr
?
wo initialisieren Sie 'MeanObj'? – 101010
es gibt kein foo-Objekt irgendwo tatsächlich – lsbbo
Warum brauchen Sie sogar ein 'unique_ptr'? Mach einfach 'foo meanObj; meanObj.setMean (Eingabe); ' – Kevin