Ich versuche, mir einen Kopierkonstruktor für meine Struktur zu schreiben, aber ich scheine das nicht richtig zu machen und würde mich über jegliche mögliche Hilfe freuen. Ich möchte rekursiv eine tiefe Kopie machen, aber ich bekomme immer Vorschläge in der Initialisierungsliste zu initialisieren, und das scheint auch nicht gut zu funktionieren.Ich kämpfe mit Kopierkonstruktoren in C++
struct Node
{
Node* left; // will be our previous
Node* right;// will be our next
Node* previous;// get a handle to the previous node
string value;
Node(string nval): left(NULL), right(NULL), previous(NULL), value(nval)
{
}
Node(Node const& node)
: previous(new Node(node.previous)),
left(new Node(node.left)),
right(new Node(node.right)),
value(node.value)
{
}
Node& operator=(const Node&)
{
// ...
}
};
Vielen Dank im Voraus.
'neuer Knoten (node.previous)': 'previous' ist ein Zeiger, aber Ihre' Node' Klasse hat keinen Konstruktor, der einen Zeiger verwendet. (Das gleiche gilt natürlich auch für die anderen.) – sbi
und was ist, wenn node.left NULL ist? Was erwarten Sie von "neu" für Sie? Tun Sie dies nicht in der Initialisierungsliste. Sie haben einen Körper für Ihren Konstrukteur - tun Sie es dort. – littleadv
Und die Klammern sehen alles falsch aus. – Mat