-3
Wie kann ich den SearchTree-Konstruktor mit dem T-Typ-Parameter implementieren, indem ich seine Superklasse aufruft?So rufen Sie den Basiskonstruktor auf, wenn Ihre Klasse von unique_ptr abgeleitet ist
template <class T>
class SearchTree: protected unique_ptr<Node<T> >{
public:
SearchTree<T>();
SearchTree<T>(const T &); //How do I implement this ?
}
template <class T>
class Node{
friend class SearchTree<T>;
public:
Node<T>();
Node<T>(const T & sl_):sl(sl_){};
private:
const T sl;
SearchTree<T> left,right;
}
stammen nicht von std :: unique_ptr. So liegt der Wahnsinn. kapseln es ein. –
Es ist eine Schulübung, dieser Code ist angegeben. Ich muss den Konstruktor implementieren ... – Agnaroc
Sie können nicht einfach einen Kopierkonstruktor schreiben; Sie müssen wissen, was die richtige Semantik ist. 'unique_ptr' selbst hat keinen Kopierkonstruktor, weil es nicht sinnvoll ist, mehrere Kopien von etwas zu haben, das eindeutig sein soll. Es hat einen Move-Konstruktor, so dass nur ein "unique_ptr" -Objekt einen Zeiger auf die verwaltete Ressource enthält. Also müssen Sie als Erstes die Schwellenwertfrage beantworten: Was bedeutet es, ein 'SearchTree'-Objekt zu kopieren? –