class lista {
class wezel {
wezel *nast; // next node in list
std::string napis; // string in node
// ...
public:
void set_napis(string napis1) { napis = napis1; }
void set_nast(wezel *nast1) { nast = nast1; }
wezel(const std::string napis1, wezel *nast1) : napis(napis1), nast(nast1) {}
friend ostream& operator<< (ostream &wy, const wezel &wzl) {
if (wzl.nast) return wy << wzl.napis << ", " << *wzl.nast;
else return wy << wzl.napis;
}
};
wezel *poczatek; // pointer to the beg of the list
public:
lista();
lista(const lista &lst);
lista(lista &&lst);
lista(initializer_list<std::string> lst);
lista& operator= (const lista &lst);
lista& operator= (lista &&lst);
~lista();
public:
friend ostream& operator<< (ostream &wy, const lista &lst) {
if (lst.poczatek) return wy << "(" << *lst.poczatek << ")";
else return wy << "()";
}
Ich möchte Destruktor schreiben, die nicht nur Mitglied der Klasse lista sondern auch Wezel (alle Knoten) Der Zeiger in Wezel bedeutet, dass Zeiger auf das nächste Element der Liste ist * Nast. Wenn es nullpointer ist, ist es das Ende der Liste. Ich weiß, ich sollte keine Destruktoren für Strings erstellen, aber was ist mit diesen Zeigern usw.?
Große Entschuldigungen für mein Englisch. Ich bin aus Polen;) Greets;)
Warum nicht einfach http://www.cplusplus.com/reference/list/list/ verwenden, anstatt das Rad neu zu erfinden? –
weil es unsere Aufgabe vom Tutor ist :) –
Ich sehe - Sie wollen, dass wir Ihre Hausaufgaben schreiben. –