Wieder mal Problem mit protected
-
Hallo!
Ich schreib am Freitag ne C++ Klausur. In einer alten Klausur hab ich folgende Aufgabe über doppel verkette Listen gefunden (Mein Lösungsvorschlag):
#include <iostream> using namespace std; class ListElem { protected: ListElem *pred, *succ; public: ListElem() { pred=NULL; succ=NULL; } ~ListElem() { delete pred; delete succ; } virtual void print() = 0; }; class Liste : public ListElem { private: ListElem *head; public: Liste() { head=NULL; } ListElem *first(); void insert(ListElem*); //virtual void print() }; ListElem *Liste::first() { if(head!=NULL) return head; } void Liste::insert(ListElem *t) { t->pred=NULL; t->succ=head; if(head) head->pred = t; head=t; } class Zahlen : public ListElem { private: long wert; public: Zahlen(long w) : wert(w) {} //void print() }; int main(void) { long size, temp, i; Zahlen *t; Liste dvl; cout << "Wieviele wollen Sie speichern: "; cin >> size; for(i=0; i<size; i++) { cout << "Bitte " << i << "ten Wert eingeben:"; cin >> temp; t = new Zahlen(temp); dvl.insert(t); } return 0; }
Die Klasse Liste soll vollen Zugriff aus die Datenelemente und Methoden con ListElem haben - deshalb protected? (Dann kann ich aber aus der main-methode nicht mehr darauf zugreifen beim insert;
Und kann ich die Zuweisung aus der main-Methode überhaupt so machen?
Ich häng jetzt schon den ganzen Tag daran - kann mir jemand Tipps geben?THX
Tobias