Sto provando ad aggiungere una funzione di inizializzazione pigra alla mia classe. Non sono molto abile con C++. Qualcuno può dirmi come lo realizzo.Come inizializzare un unique_ptr
La mia classe ha un membro privato definito come:
std::unique_ptr<Animal> animal;
Ecco il costruttore originale che accetta un parametro:
MyClass::MyClass(string file) :
animal(new Animal(file))
{}
Ho appena aggiunto un costruttore senza parametri e una funzione Init() . Ecco la funzione Init che ho appena aggiunto:
void MyClass::Init(string file)
{
this->animal = ???;
}
Che cosa ho bisogno di scrivere lì per renderlo equivalente a ciò che sta facendo il costruttore?
Utilizzare ['std :: make_unique (file)'] (http://en.cppreference.com/w/cpp/memory/unique_ptr/make_unique) nell'elenco di inizializzazione dei membri. –
Semplice esempio: http://en.cppreference.com/w/cpp/memory/unique_ptr – cbinder
Per '???' puoi usare 'std :: make_unique (file)'. –