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!