Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Frage zur Queue

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
25.11.2005, 17:24 Uhr
Juscho



Ich sitze schon seit 2h an der Queue Implementierung und finde einfach keinen Fehler aber mein Compiler meldet:


Code:
IQueue.cpp: In destructor `IQueue::~IQueue()':
IQueue.cpp:38: error: `macheLeer' undeclared (first use this function)
IQueue.cpp:38: error: (Each undeclared identifier is reported only once for
   each function it appears in.)
IQueue.cpp: In member function `const IQueue& IQueue::operator=(const IQueue&)
   ':
IQueue.cpp:50: error: `enqueue' undeclared (first use this function)
IQueue.cpp:55: error: `void macheLeer()' used prior to declaration
IQueue.cpp:55: error: parse error before `;' token
IQueue.cpp: At global scope:
IQueue.cpp:59: error: parse error at end of saved function text
turing [153] [5:23pm] /home/scholzj/latex/praxprog/serie3>



Hier der Quellcode.


Code:
#include <iostream>     // input und output
using namespace std;

class ListNode {

    public:        // deklariere als öffentlicher Teil
    
        int element;    // Element
        ListNode *next;    // Zeiger

        ListNode(int intelement, ListNode * zeiger = NULL)
            : element(intelement), next(zeiger) {    // Konstruktor
        }
};

class UnderflowException {    // Zum Abfangen von Fehlern falls keine Elemente mehr drin sind
};

class IQueue {

    private:    // deklariere als privater Teil
    
        ListNode *head;
        ListNode *tail;

    public:
        
        IQueue()
            : head(NULL), tail(NULL) {            // Standard Konstruktor
        }

        IQueue(const IQueue & rhs)
            : head(NULL), tail(NULL) {    // Erweiterter Konstruktor
                *this = rhs;
        }

        ~IQueue() {                        // Destruktor
            macheLeer();            
        }


        const IQueue & operator = (const IQueue & rhs) {
        

            if(this != &rhs) {

                macheLeer();
                ListNode *rptr;
                for(rptr=rhs.head; rptr!=NULL; rptr=rptr->next) {
                    enqueue(rptr->element);
                }
                return *this;
            }

            void macheLeer() {
                while(!isEmpty()) {
                    dequeue();
                }
            }
            
            bool isEmpty() const {
                return head == NULL;
            }

            int getHead() const {
                if(isEmpty()) {
                    throw UnderflowException();
                }
                return head->element;
            }

            void enqueue(int wert) {
                if(isEmpty()) {
                    head = new ListNode(wert);
                    tail = new ListNode(wert);
                }
                else {
                    tail=tail->next=new ListNode(wert);
                }
            }

            int dequeue() {
                int headelement = getHead();
                ListNode *old=head;
                head=head->next;
                delete old;
                return headelement;
            }
        }
    };



int main() {

    return 0;

}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.11.2005, 17:43 Uhr
Tommix



Hallo,
vor void macheLeer() { usw. fehlt eine schließende Klammer }, dafür ist am Ende eine zuviel.

Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
25.11.2005, 18:06 Uhr
Juscho



Danke!!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: