Bitte hilfe!!!



  • habe das programm geschrieben, und habe immer noch Fehler...können Sie mir helfen!!! Was ich geschrieben habe ganz unten!!!

    Ein Klassentemplate "Stapel" (Stack - LIFO) schreiben, das folgende Möglichkeiten zur Verfügung stellt:

    - Hinzufügen eines Elementes
    - Entfernen eines Elementes
    - Abfrage, ob Stapel leer ist

    Die Klasse sollte für verschiedene Datentypen verwendbar sein. Des weiteren soll innerhalb der Templateparameterliste die Größe des Stacks als normaler Parameter hinzugefügt werden.
    Im Konstruktor soll ein Vektor dieser Größe angelegt und eine Variable für die Anzahl der bereits eingefügten Elemente auf 0 gesetzt werden.

    Legen in main() jeweils ein Objekt für einen Stapel mit 20 und einen mit 40 int-Elementen an.

    Füllen den ersten Stapel in einer Schleife mit bis zu 20 Werten (können auch weniger sein). Leeren diesen Stapel anschließend in der Weise, dass die Daten einzeln wieder herunternehmen und gleichzeitig in den zweiten Stapel einfügen. Leeren Sie anschließend den zweiten Stapel und geben Sie gleichzeitig jedes gerade gelöschte Element aus.

    #include <cstdlib>
    #include <iostream>

    using namespace std;

    template <class T, int iGroesse> class Stapel
    {
    public:
    Stapel(T);
    void hinzufuegen(const T & el);
    T entfernen();
    void pop();
    bool leer()const;

    private:
    unsigned int iAnzElemente;
    vektor<T> vInhalt;
    };

    int main(int argc, char *argv[])
    {
    Stapel<int, 20 > s20;
    Stapel<int, 40 > s40;

    int iGrenze;
    cout <<"Anzahl Elemente (<= 20): "<<endl;

    //einige Zahlen auf s Stapel
    int i20;
    for(int i=0; i<iGrenze; i++)
    void hinzufuegen();

    //Elemente von s in umgekehrter Reihenfolge
    ut<< s40, entfernen()<<" "<<endl;
    //cout<<s40, pop()<<" "<< endl;

    system("PAUSE");
    return EXIT_SUCCESS;
    }

    int iGroesse;
    template <class T, iGroesse> class Stapel <T, iGroesse>::Stapel(){};
    iAnzElemente(0);
    vInhalt(vektor<T>(iGroesse)){}

    template <class T, int iGroesse> inline voidStapel<T, iGroesse>:hinzufuegen(const T e)
    {
    if(AnzElemente>0){
    vInhalt push_back(vInhalt[vInhalt size()-1]);
    for(int i = vInhalt size() - 2, i > 0, i--){
    vInhalt[i] - vInhalt[i-1];
    }
    vInhalt[0] = e;
    }
    else {
    vInhalt puch_back(e);
    }
    ++iAnzElemente;
    }



  • Vielleicht einige Tipps, mit denen man in diesem Forum eher ernst genommen wird:

    • Aussagekräftigen Threadtitel wählen. Die meisten Leute hier brauchen Hilfe.
    • Eigeninitiative zeigen und nicht Aufgabenstellung kopieren.
    • Problem so beschreiben, dass man als Leser weiss, wo es liegt.
    • Für Code bitte [cpp]-Tags verwenden (erste weisse Schaltfläche unter Textfeld).

Log in to reply