2010-11-19 8 views
13

Tengo algunos problemas con las declaraciones de vectores en el archivo de encabezado de una clase de C++ que estoy creando. Mi archivo de cabecera entera se ve así:Declarar vectores en un archivo de encabezado de C++

#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 

mi error se produce en las líneas siguientes a la declaración de "privado" (en la que declaro mis vectores). El error que obtengo es C4430 - especificador de tipo faltante y C2238 - tokens inesperados que preceden a ';'

Gracias por cualquier ayuda.

+1

La respuesta ya ha sido encontrado y el problema fue debido a la negligencia del programador. Gracias por los comentarios y lamento publicar una pregunta tan tonta en este sitio. –

+0

No te encanta lo inútil que es el error del compilador, después de 5 años de C/C++ se ha convertido casi en una segunda naturaleza, pero después de un tiempo usando java, solo resulta cuán inútil es el error del compilador. – hhafez

+0

No creo que haya sido tonto. Soy bastante nuevo en C++ y estaba cometiendo el mismo error, ¡así que esto era justo lo que necesitaba! – jamesc1101

Respuesta

16

que se está perdiendo el espacio de nombres:

std::vector 
+0

Arg, me siento como un tonto. Gracias por señalarme eso y disculpe a todos por obstruir el sitio con una pregunta tan tonta. –

+4

En comparación con muchas preguntas aquí, no era * que * tonto :) Obtienes puntos extra por no poner 'usando namespace std;' :) –

+0

Hah, tomaré eso. : P Te daré el cheque verde desde que respondiste primero. –

9

Tienes que poner 'std ::' antes de 'vector' como lo hiciste con la cadena.

+0

Ah, por supuesto. Gah, ahora me siento tan tonto. ¡Gracias por la ayuda! –

0

En mi caso, añadiendo el espacio de nombres no funciona, sin embargo, me faltaba el

#include <vector>; 
+3

Debe ser '#include ' (sin punto y coma) – William

Cuestiones relacionadas