Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Unterstützung_bzgl_C++_Fehler_"doest not name a type"

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
20.04.2017, 20:35 Uhr
cprogcoder



Hallo,
ich benötige Unterstützung für einige Fehler die unten auftreten.
Fehler sind z.B. "hilfszeiger" does not name type" ; "listenende" does not name type" und
expexted declaration before "}".

Vielen Dank im Voraus,


C++:
/*######################################################
     Einsendeaufgabe 5.2
###################################################### */


/* ##################################
    Doppelt verkettete Liste
   ################################## */


#include <iostream>
using namespace std;

//Die Struktur für die Listenelemente
struct listenelement
    {
    string daten;
    listenelement* next;
    listenelement* last;
    };

listenelement* listenanfang;
listenelement* listenende;
listenelement* hilfszeiger;


//Eine Funktion zum Anhängen von Elementen an die Liste
void anhaengen(string datenneu)
    {
    hilfszeiger = listenanfang;
    while (hilfszeiger->next != nullptr)
           hilfszeiger = hilfszeiger->next;
    }

    hilfszeiger->next = new(listenelement);
    listenelement* bisherLetzter = hilfszeiger;
    hilfszeiger = hilfszeiger->next;

    strcpy(hilfszeiger->daten,datenneu);
    hilfszeiger->next = NULL;
    hilfszeiger->last = bisherLetzter;
    listenende = hilfszeiger;
}


//Eine Funktion zum Ausgeben aller Elemente
void ausgeben()
    {
    hilfszeiger = listenanfang;
    cout << hilfszeiger->daten << '\n';

    while (hilfszeiger->next != nullptr)
        {
        hilfszeiger = hilfszeiger->next;
        cout << hilfszeiger->daten << '\n';
        }
    }


void ausgaberueckwaerts() {

        hilfszeiger = listenende;

        cout <<hilfszeiger->daten<<"\n";

        while (hilfszeiger->last != NULL) {

         hilfszeiger = hilfszeiger->last;
         cout << hilfszeiger->daten << "\n";
         }

}

void initialisieren() {

        listenanfang = new(listenelement);
        listenanfang->next = NULL;
        listenanfang->last = NULL;
        listenende = listenanfang;
        strcpy(listenanfang->daten,"Element 0");
}

//die Liste leeren und Speicher freigeben
void ende()
    {
    while (listenanfang != nullptr)
        {
        hilfszeiger = listenanfang;
        listenanfang = listenanfang->next;
        delete(hilfszeiger);
        }
    }

int main ()
    {
    initialisieren();
    anhaengen("Element 1");
    anhaengen("Element 2");
    anhaengen("Element 3");
    ausgeben();
    ausgaberueckwaerts();
    ende();

    return 0;
    }


Dieser Post wurde am 21.04.2017 um 17:44 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.04.2017, 07:54 Uhr
Tommix



'Morgen,
das ist ein fürchterlicher Mischmasch aus C und C++. Bringt man das Euch so bei?
Davon mal abgesehen resultieren die Fehler im Wesentlichen aus dieser überflüssigen Kammer:

C++:
void anhaengen(string datenneu)
{
    hilfszeiger = listenanfang;
    while (hilfszeiger->next != nullptr)
        hilfszeiger = hilfszeiger->next;
    // zuviel: }
    
    hilfszeiger->next = new(listenelement);
    listenelement* bisherLetzter = hilfszeiger;
    hilfszeiger = hilfszeiger->next;

    hilfszeiger->daten = datenneu;
    hilfszeiger->next = NULL;
    hilfszeiger->last = bisherLetzter;
    listenende = hilfszeiger;
}


Wenn Du dann noch ein #include <string> einbaust und die strcpy's durch eine einfache Zuweisung a = b ersetzt ist es zumindest syntaktisch soweit in Ordnung.

Gruß,
Tommix

Dieser Post wurde am 21.04.2017 um 07:54 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
21.04.2017, 10:18 Uhr
ao

(Operator)



Zitat:
das ist ein fürchterlicher Mischmasch aus C und C++.

C++ ist eigentlich nur die Verwendung von string und cout. Die ganze Listenmimik ist C, soweit ich erkennen kann, und durch die Verwendung globaler Variablen (listenanfang, listenende, hilfszeiger) obendrein ziemlich schäbiges C.

Aber wer weiß, vielleicht ist ja genau das das Ziel der Übung. Was ist die Aufgabe?

Das ganze Pointergeraffel hab ich jetzt nicht nachgerechnet. Ich wundere mich nur über die Idee, bei der Initialisierung schon ein "Element 0" einzufügen. Warum ist die Liste nicht einfach leer (listenanfang = listenende = 0)?

Dieser Post wurde am 21.04.2017 um 10:23 Uhr von ao editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
21.04.2017, 14:12 Uhr
cprogcoder



Hallo,
ich habe die Korrekturen durchgeführt und es hat hat funktioniert.
Bin noch neu in der C++ Programmierung daher ist eure Einschätzung schon richtig.

Es wahr eigentlich eine Aufgabenteil für eine doppelt verkettete Liste.

Vielen Dank für eure schnellen Antworten. Werde dieses Forum weiterhin noch benutzen.

cprogcoder
 
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: