在“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'。
答案 0 :(得分:3)
extern
意味着这是一个变量的纯声明(不是定义),在程序的其他地方定义了外部链接。如果使用了变量,那么程序中的某个地方也必须只有一个定义;这将是完全相同但没有extern
。
但这与错误无关:看起来编译器无法识别std::vector
,可能是因为您没有包含<vector>
。
答案 1 :(得分:0)
我有同样的问题。但这是由于我忘记了没有写
using namespace std;
在#include <...>
之后添加此代码后,问题已解决。