Typzuweisung



  • Hallo,
    ich bin neu in C++ und bin gerade dabei eine LinkedList zu implementieren.
    Mein Problem is das ich keine Variablen vom Typ einer selbst definierten Klasse zuweisen kann (Zeile 85).

    class ListEl
    {
    	protected:
    		int atom;
    		ListEl* next;
    
    	public:
    		//Konstruktoren
    		ListEl();
    		ListEl(int a);
    
    		//Dekonstruktor
    		~ListEl();
    
    		//Methoden
    		void setValue(int a);
    		void setNext(ListEl *el);
    
    		int getData() const;
    		ListEl* getNext() const;
    
    };
    
    #include "ListEl.h"
    using namespace std;
    
    ListEl::ListEl()
    {
    	atom = 0;
    	next = 0;
    }
    
    ListEl::ListEl(int a)
    {
    	atom = a;
    	next = 0;
    }
    
    ListEl::~ListEl(){}
    
    class SortList
    {
    protected:
    	ListEl *head;
    
    public:
    	//Konstruktor
    	SortList();
    
    	//Dekonstruktor
    	~SortList();
    
    	int insert(int a);
    	int show();
    
    };
    
    #include "SortList.h"
    #include "ListEl.h"
    #include <iostream>
    using namespace std;
    
    SortList::SortList()
    {
    	head = 0;
    }
    
    SortList::~SortList() {}
    
    int SortList::insert(int a)
    {
    	ListEl *newEl;
    	ListEl *tempEl;
    	newEl = new ListEl;
    
            newEl->setValue(a);
            newEl->setNext(0);
    	if(head == 0)
    	{
    	       head = newEl;
    	}
    return 0;
    }
    

    wenn ich jetzt head newEl zuweißen will ganz am Ende bekomm ih die Meldung: Error: Ein Wert vom Typ ""ListEl *"" kann keiner Entität vom Tyo ""ListEl *"" zugewießen werden. Ich hab schon alles probiert was mir einfällt, wenn ich als Typ für head und newEl einfach int nehme geht es auch ohne Probleme. Ich weiß aber wirklich nicht mehr weiter 😕 Wäre sehr dankbar wenn da jemand nen Tipp hat 🙂 Viele Dank 👍


  • Mod

    Standardfrage: std::list kennst du?

    Antwort auf dein Problem: Welches Problem? Dein Code steckt zwar voller Hauer der übelsten Sorte, ist rein syntaktisch jedoch korrekt. Die Zuweisung, ja sogar eine Zuweißung, von newEl an head muss dein Compiler akzeptieren.

    Verdacht: Du hast etwas an dem Code verändert, bevor du ihn hier gezeigt hast. Nun besteht das Problem nicht mehr.

    Böser Verdacht: Jürgen Wolf? Arnold Willemer? Mindestens einer dieser Namen sagt dir was, weil sie auf deinem Lehrbuch stehen?

    Ratschlag: Abwarten bis dir jemand eine Einzelkritik zu den Fehler in deinem Code gibt, dann nochmals gründlichst überarbeiten. Oder vielleicht auch ganz wegschmeißen, Erfahrung aus guten Büchern (siehe meine Signatur) sammeln, dann das Projekt nochmal in gut machen.



  • Danke schonmal für die Antwort 🙂
    Ja das der Code nicht sehr gut ist dessen bin ich mir bewusst.
    Das unten genannte sagt mir eigentl nichts, aber wie gesagt bin ich recht neu bei c++ dabei, um genau zu sein 2-3 Tage.
    Ich habe allerdings recht gute Kenntnisse in Java, also auch objektorientiert. Und deswegen versteh ich umso weniger warum diese Zuweisung nicht funktioniert. Ich habe nochma ein neues Projekt gemacht und alles nochma sauber geschrieben. An dem Code wurde von der Logik her auch nichts weiter verändert, funktionieren tut es trotzdem nicht 😕
    Mal hier ein Screenshot:
    http://www.abload.de/img/algdatqoitp.png

    root ist hier das gleiche wie head, nach wir vor ein Zeiger auf ListEl.
    Ob das jetzt geschrieben Sinn ergibt is momentan egal, es geht mir wirklich nur um die Zuweisung. Kann das an meinen Einstellungen sonst iwas liegen?



  • Kümmere dich um die Fehler, die im Ausgabefenster stehen, nicht darum, was dir die Syntaxprüfung des Editors anstreicht.

    Edit: Ich würde sagen, in liste1.h fehlen die Include-Guards.



  • Jop dein Tipp mit dem Fehler ausm Ausgabefenster hat mich auch darauf gebracht das ich doppelt includet hab. Hab jetzt guards drin uns es geht 🙂
    Vielen Dank!! der weg ist steinig als c++ anfänger 😃



  • Phil89 schrieb:

    der weg ist steinig als c++ anfänger 😃

    Mag sein, dass ich meine Schwierigkeiten inzwischen alle verdrängt habe, aber im Moment denke ich mir: Der Weg muss gar nicht steinig sein. Ist er aber sicherlich, wenn man einfach so drauf los hackt...

    Es gibt echt ganz brauchbare C++ Bücher. 😉


Anmelden zum Antworten