Wie lege ich stack für objekte an?



  • Hallo!
    Ich habe eine Klasse, und möchte objekte in einen stack rein machen!

    class test
    {
     public:
     //hier zeugs
     private:
     //hier zeugs
    };
    
    int main()
    {
    stack<test> obtest; //Fehler
    
    return 0;
    }
    

    er sagt, "Ungültige Template Argumentliste!

    Wie geht das richtig?



  • Bei mir geht dein Beispiel. Wenn du die Klasse test als Template-Klasse has muss du das Template angeben:

    std::stack<test<int, double> > teststack; // wichtig leerzeichen zwischen > >
    


  • "std::" vergessen? Wobei dann eigentlich die Fehlermeldung keinen Sinn macht. Aber bei mir geht es so ohne Probleme.

    #include <stack>
    
    class test
    {
     public:
    	 test() {}
    };
    
    int main()
    {
    	std::stack<test> Stack;
    
    	return 0;
    }
    

    Gruss,
    DeSoVoDaMu



  • das muss so gehen!
    ist das wirklich der code der nich geht?

    Meistens kommt die meldung, wenn du schon ein anderes objekt genannt hast wie deine klasse heißt!

    zB.

    class test
    {
    //blala
    };
    
    int main()
    {
     stack<int> test;
     stack<test> testob;
    }
    

    das könnte den fehler verursachen!
    }



  • Welcher Compiler? Compiler Version?



  • der fehler könnte daher rühren, wie DeSoVuDaMu schon geschrieben hat, daß du <stack> nicht includiert hast. und namespace std; nicht vergessen!


Log in to reply