2013-08-01 2 views
0

В "BarOperations.h"C++ ехЬегп вектор переменной ошибки

#include "Bar.h" 
#include "Piv.h" 
#include <string> 
#include <vector> 
... 
extern std::vector<Bar> bars; 
... 

В "bar.h"

class Bar {...}; 
... 

В "main.cpp"

vector<Bar> bars; 
... 

Но я получил следующая ошибка:

syntax error: missing ";" before identifier 'bars'

Я не знаком с использованием «extern», может ли кто-нибудь помочь дать какое-то объяснение? Я хочу использовать переменные «бары», определенные в main.cpp в «BarOperations.h», используя «extern».

+5

Включенный вами 'vector'? – Nbr44

+0

Проверьте выход вашего компилятора; особенно тот, о котором вы говорили. – devnull

+0

Да, я включил

ответ

3

extern в объявлении переменной означает, что это чистое объявление (не определение) переменной с внешней связью, определенной где-то еще в программе. Если переменная используется, то в программе должно быть точно одно определение; это будет точно таким же, но без extern.

Но это не имеет отношения к ошибке: похоже, что компилятор не распознает std::vector, возможно, потому, что вы не включили <vector>.