2013-08-01 96 views
0

在 「BarOperations.h」C++的extern矢量變量誤差

#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」的用法,誰能幫忙提供一些解釋? 我想通過使用「extern」來使用在「BarOperations.h」中的main.cpp中定義的變量'bars'。

+5

你是否包含'vector'? – Nbr44

+0

檢查你的編譯器輸出;特別是你提到過的那個。 – devnull

+0

是的,我確實包含了

回答

3

extern在變量聲明中意味着這是一個變量的純聲明(而不是定義),該變量在程序中的其他位置定義了外部鏈接。如果使用變量,那麼程序中的某處也必須有一個定義;這將完全相同,但沒有extern

但這與錯誤無關:它看起來像編譯器不識別std::vector,可能是因爲你沒有包括<vector>