[Gelöst] Objekte in std::vector speichern, wie geht das?
-
Evolykane schrieb:
Wegen
lines<actuallline>.toelements();in meinem Code gab es abermillionen von Fehlermeldungen.
Zu recht. Soll das vielleicht
lines[actualline].toelements();heißen? BTW aktuell heißt auf Englisch nicht actual, sondern current.
-
Bashar schrieb:
Soll das vielleicht
lines[actualline].toelements();heißen?Hab ich gerade probiert, funktioniert nicht.
Hier die Klassen die mit dem Vectorproblem zu tun haben.//file.hpp #ifndef FILE_HPP_ #define FILE_HPP_ #include <string> #include <vector> #include "line.hpp" class File { private: std::vector<Line> lines; int actuallline; public: File(); void takechar(char _zeichen); }; #endif//file.cpp #include "file.hpp" #include "line.hpp" File::File() { actuallline = 0; } void File::takechar(char _zeichen) { if(_zeichen == '\n') { lines<actuallline>.toelements(); actuallline++; } else { lines<actuallline>.takechar(_zeichen); } }//line.hpp #ifndef LINE_HPP_ #define LINE_HPP_ #include <string> #include <vector> class Line { private: std::vector<std::string> elements; std::string oldline; public: void takechar(char _zeichen); void toelements(); }; #endif//line.cpp #include "line.hpp" void Line::takechar(char _zeichen) { oldline += _zeichen; } void Line::toelements() { }
-
Evolykane schrieb:
Bashar schrieb:
Soll das vielleicht
lines[actualline].toelements();heißen?Hab ich gerade probiert, funktioniert nicht.
Fehlerbeschreibung?
Hier die Klassen die mit dem Vectorproblem zu tun haben.
Nichts offensichtliches zu sehen. (Außer natürlich der Blödsinn mit den <...>-Klammern.)
-
Errorlog: http://pastebin.com/ag51B5Tw
Zu den [] soweit ich weiß sind die eckigen Klammern für Arrays zu benutzen und <> für std::vector weil das ein template ist oder so.
-
Evolykane schrieb:
soweit ich weiß sind die eckigen Klammern für Arrays zu benutzen und <> für std::vector
Das ist Unsinn.
-
Evolykane schrieb:
Zu den [] soweit ich weiß sind die eckigen Klammern für Arrays zu benutzen und <> für std::vector weil das ein template ist oder so.
Na, wenn du alles schon weißt, warum fragst du dann hier? Hier laufen nur die Idioten rum, die [] benutzen würden.
-
Evolykane schrieb:
Errorlog: http://pastebin.com/ag51B5Tw
Ich meinte den Fehler, NACHDEM du die <...> durch [...] ersetzt hast.
-
http://pastebin.com/wfs6jn29
Ich mach es dann doch lieber mit Arrays, wie bekommt man die Anzahl der Zeilen einer Datei?
-
Evolykane schrieb:
Verarschen kann ich mich alleine.
File/file.cpp: In member function ‘void File::takechar(char)’: File/file.cpp:16:8: error: no match for ‘operator<’ (operand types are ‘std::vector<Line>’ and ‘int’) lines<actuallline>.takechar(_zeichen); ^
-
*facepalm* stimmt ja es waren 2 Methodenaufrufe.
Vielen Dank das du mich darauf aufmerksam gemacht hast, jetzt gibt es keinen Fehler mehr in den beiden Klassen.