多个C++文件中的共享向量变量

ehs*_*dam 7 c++ variables

我想在两个cpp文件(A.cpp和B.cpp)之间共享(全球化)一些向量变量(V1和V2).我已经通过以下命令在Ah中定义了V1和V2.

extern vector<uint64_t> V1;
extern vector<uint64_t> V2;
Run Code Online (Sandbox Code Playgroud)

我还在A.cpp和B.CPP文件中添加了#include"Ah".任何人都可以让我知道我还能做些什么才能在这两个CPP文件中访问V1和V2的元素?

提前致谢

Nem*_*ric 10

首先,您需要选择应该定义矢量的位置.让我们说你选择A.cpp.

A.cpp(仅在一个文件中 - 在多个文件中定义相同的对象将产生多个定义的符号错误)向量定义为全局变量:

 vector<uint64_t> V1;
 vector<uint64_t> V2;
Run Code Online (Sandbox Code Playgroud)

B.cpp(并从中您要访问的所有其他文件V1V2)宣布向量作为extern.这将告诉链接器在别处搜索实际对象:

 extern vector<uint64_t> V1;
 extern vector<uint64_t> V2;
Run Code Online (Sandbox Code Playgroud)

现在,在连接步骤V1V2B.cpp将被连接到V1V2A.cpp(或徘徊无论这些对象被定义).

  • 更好的是,将声明放在一个包含在*all*编译单元中的标题中,包括包含定义的标题.这样编译器可以检查定义和声明是否匹配. (3认同)