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


Anmelden zum Antworten