C2143, C4430 & C2238
-
Hi!
Ich habe in meinem Projekt folgenden Code:
//CParse.h struct s_entry { std::string title; std::string id; }; class CParse { public: vector<s_entry> getElements(std::string strHTML); }; //CParse.cpp vector<s_entry> CParse::getElements(string strHTML) { //Implementierung }und bekomme folgende Fehler:
MS VS 2005 EE schrieb:
Fehler 1 error C2143: Syntaxfehler: Es fehlt ';' vor '<' c:\projects\nmc\nmc\cparse.h 29
Fehler 2 error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. c:\projects\nmc\nmc\cparse.h 29
Fehler 3 error C2238: Unerwartete(s) Token vor ';' c:\projects\nmc\nmc\cparse.h 29wobei Zeile 29 in der CParse.h der Zeile 11 hier oben im Code entspricht.
Was habe ich falsch gemacht?
Danke im Voraus!
-
Wenn ich raten müsste, würde ich sagen, du hast das "std::" am Anfang dieser Zeile vergessen.
-
vector liegt im Namespace std.

-
<vector> eingebunden und std::vector per using sichtbar gemacht?
-
Aber direkt nen Tipp:
struct basic_entry { std::size_t id; basic_entry() : id(0) {} }; struct string_entry : public basic_entry { std::string title; }; class Parser { public: void get_elements(std::string const& file, std::vector<basic_entry>& dest); };
-
Danke, daran lag es!!
@(D)evil:
was bedeutet basic_entry() : id(0) {}
-
thewilli schrieb:
Danke, daran lag es!!
@(D)evil:
was bedeutet basic_entry() : id(0) {}
das ist der Konstruktoraufruf der Variable id - in dem FAll hier wird sie mit 0 initialisiert
-
Stichwort Initialisierungsliste
Sollte im C++-Buch deiner Wahl stehen.