2010-11-19 3 views
13

У меня возникли проблемы с векторными объявлениями в файле заголовка класса C++, который я делаю. Весь мой файл заголовка выглядит следующим образом:Объявление векторов в файле заголовка 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 

Моя ошибка происходит на линии после «частное» заявление (где я декларировать свои векторы). Ошибка, которую я получаю, это C4430 - отсутствующий спецификатор типа и C2238 - неожиданные токены, предшествующие ';'

Благодарим за помощь.

+1

Ответ уже найден и проблема было связано с небрежностью программистов. Спасибо за отзыв и извините за такой глупый вопрос на этом сайте. –

+0

Вам не нравится, как бесполезна ошибка компилятора, после 5 лет C/C++ она стала почти второй натурой, но через некоторое время, используя java, она просто поражает, как бесполезно компилятор erro. – hhafez

+0

Я не думаю, что это было глупо. Я довольно новичок в C++, и я делал ту же ошибку, так что это было именно то, что мне нужно! – jamesc1101

ответ

16

Вы упускаете имен:

std::vector 
+0

Арг, я чувствую себя такой дураком. Спасибо, что указали на это и жалели всех за то, что забивали сайт таким глупым вопросом. –

+4

По сравнению со многими вопросами здесь, это было не так * глупо :) Вы получаете дополнительные баллы за то, что не ставили 'using namespace std;' :) –

+0

Hah, я возьму это. : P Я дам вам зеленый чек, так как вы ответили первым. –

9

Вам нужно поставить 'std ::' перед 'vector' так же, как вы сделали со строкой.

+0

Ах, конечно. Га, теперь я чувствую себя настолько глупо. Спасибо за помощь! –

0

В моем случае, добавление пространства имен не работает, однако, я пропускал

#include <vector>; 
+3

Должно быть '#include ' (без точки с запятой) – William

Смежные вопросы