2010-11-19 26 views
13

Ich habe einige Probleme mit Vektordeklarationen in der Header-Datei einer C++ - Klasse, die ich mache. Meine gesamte Header-Datei sieht wie folgt aus:Deklarieren von Vektoren in einer C++ - Header-Datei

#ifndef PERSON_H 
#define PERSON_H 

#include "Message.h" 
#include <string> 
#include <vector> 


class Person { 

public: 

Person() {}; 
Person(std::string emailAddress); 

private: 

vector<Message> inbox; 
vector<std::string> contacts; 
std::string emailAddress; 

}; 

#endif PERSON_H 

Mein Fehler auf den Leitungen erfolgt im Anschluss an die „private“ Erklärung (wo ich meine Vektoren erklären). Der Fehler, den ich bekomme, ist C4430 - Typspezifizierer fehlt und und C2238 - unerwartete Token vor ';'

Vielen Dank für jede Hilfe.

+1

Die Antwort bereits gefunden wurde und das Problem wegen Programmierer-Nachlässigkeit. Vielen Dank für das Feedback und Entschuldigung, eine so dumme Frage auf dieser Seite zu stellen. –

+0

Liebst du nicht, wie nutzlos der Compilerfehler ist, nach 5 Jahren von C/C++ ist es fast zweite Natur geworden, aber nach einer Weile, die Java benutzt, trifft es einfach, wie nutzlos der Compiler erro ist. – hhafez

+0

Ich glaube nicht, dass es albern war. Ich bin ziemlich neu in C++ und ich machte den gleichen Fehler, also war das genau das, was ich brauchte! – jamesc1101

Antwort

16

Sie verpassen den Namespace:

std::vector 
+0

Arg, ich fühle mich wie ein Dummkopf. Danke, dass Sie mich darauf aufmerksam gemacht haben, und es tut mir leid, dass Sie die Seite mit einer solch dummen Frage verstopft haben. –

+4

Im Vergleich zu vielen Fragen hier, war es nicht * das * albern :) Du bekommst extra Punkte dafür, 'namespace std;' nicht zu verwenden :) –

+0

Hah, ich nehme das. : P Ich gebe dir den grünen Scheck, da du zuerst geantwortet hast. –

9

Sie müssen 'std ::' vor 'vector' setzen, genau wie bei string.

+0

Ah, natürlich. Gah, jetzt fühle ich mich so dumm. Danke für die Hilfe! –

0

In meinem Fall das Hinzufügen der Namensraum nicht funktioniert hat, aber mir fehlte die

#include <vector>; 
+3

Sollte '#include ' sein (ohne Semikolon) – William

Verwandte Themen