在“ 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”。
extern
在变量声明中表示这是变量的纯声明(不是定义),带有在程序中其他位置定义的外部链接。如果使用了变量,则程序中的某处也必须正好有一个定义。将会完全相同,但没有extern
。
但是与错误无关:看起来编译器无法识别std::vector
,可能是因为您没有包含<vector>
。
我有同样的问题。但这是由于我忘了没有写
using namespace std;
在#include <...>
之后添加此选项后,问题解决了。