Generic Class funktioniert nicht



  • Hi,

    ich wollte mir die Java-Implementation eines Stacks kopieren.
    Das hat jedoch nicht so ganz geklappt, da mein kompiler meckert er würde meine Klasse Stack nicht kennen.

    Aufgebaut ist das ganze so:
    In der Stack.h

    template <class T> class Stack
    {
    //Member
    }
    

    Wenn ich das ganze dann benutzen will:

    #include "Stack.h"
    ...
    
    void An8Reader::loadAn8(){
    	Stack<int> s;
    	...
    }
    

    Jetzt meckert mein Kompiler mit
    1>c:DATEIPFAD(60): error C2065: 'Stack': nichtdeklarierter Bezeichner
    1>c:DATEIPFAD(60): error C2062: 'int'-Typ unerwartet

    Wo liegt der Fehler?



  • template <class T> class Stack
    {
    //Member
    };
    

    Semikolon hat gefehlt. 🙂
    Nee, das sähe vielleicht doch anders aus.
    Kannste ein Minimalbeispiel basteln, das ich in den Compiler hauen kann, um den Fehler zu jagen?



  • Leider nur beim abschreiben 😞
    In meinem Programmcode ists drin.



  • Was Du gezeigt hast, ist aber korrekt, würde ich sagen.
    Der Fehler dürfte wo anders liegen.



  • Ich hatte die Stack.h in einem anderen Projekt und mittels "Projekt->Vorhandenes Element hinzufügen" benutzt.
    Jetzt habe ich sie per Strg+copy in mein neues übernommen und siehe da, es geht..
    Nuja - trotzdem danke.



  • Wieso kopierst du dir eine Implentation aus Java?



  • Wie wäre es mit:

    #include <stack>
    //...
    std::stack<int> s;
    

    😕


Log in to reply