C ++外部向量变量错误

问题描述 投票:1回答:2

在“ 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”。

c++ vector extern
2个回答
4
投票

extern在变量声明中表示这是变量的纯声明(不是定义),带有在程序中其他位置定义的外部链接。如果使用了变量,则程序中的某处也必须正好有一个定义。将会完全相同,但没有extern

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


0
投票

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

using namespace std;

#include <...>之后添加此选项后,问题解决了。

© www.soinside.com 2019 - 2024. All rights reserved.