C ++ extern向量变量错误

时间:2013-08-01 12:59:44

标签: c++ vector extern

在“BarOperations.h”中

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

在“Bar.h”中

class Bar {...};
...

在“main.cpp”中

vector<Bar> bars;
...

但是我收到了以下错误:

  

语法错误:缺少“;”在标识符'bars'之前

我不熟悉“extern”的使用,有人可以帮忙提供一些解释吗? 我想使用“extern”在“BarOperations.h”中使用main.cpp中定义的变量'bars'。

2 个答案:

答案 0 :(得分:3)

变量声明中的

extern意味着这是一个变量的纯声明(不是定义),在程序的其他地方定义了外部链接。如果使用了变量,那么程序中的某个地方也必须只有一个定义;这将是完全相同但没有extern

但这与错误无关:看起来编译器无法识别std::vector,可能是因为您没有包含<vector>

答案 1 :(得分:0)

我有同样的问题。但这是由于我忘记了没有写

using namespace std;

#include <...>之后添加此代码后,问题已解决。