1

在“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;
...

但我收到以下错误:

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

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

4

2 回答 2

4

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

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

于 2013-08-01T13:03:40.850 回答
0

我遇到过同样的问题。但那是因为我忘记写了

using namespace std;

#include <...>在问题解决后添加此内容。

于 2020-05-25T14:25:03.323 回答