我正在做一个有两个模块和一个头文件的小项目。
在我的一个模块中,我创建了一个字符串向量并用一些数据填充它。
我现在在访问其他模块中的向量值时遇到问题。谁能给我任何关于如何使这个全球化的建议?
请不要认为我懒惰/没有尝试自己对此进行排序,我只是对#ifndef、#includes、#define、extern 以及何时/何地声明函数原型感到困惑。我知道所有这些都与它有关,只是不确定顺序!我正在使用 VS 2010。
我正在做一个有两个模块和一个头文件的小项目。
在我的一个模块中,我创建了一个字符串向量并用一些数据填充它。
我现在在访问其他模块中的向量值时遇到问题。谁能给我任何关于如何使这个全球化的建议?
请不要认为我懒惰/没有尝试自己对此进行排序,我只是对#ifndef、#includes、#define、extern 以及何时/何地声明函数原型感到困惑。我知道所有这些都与它有关,只是不确定顺序!我正在使用 VS 2010。
在您的模块中定义一个 API 函数,该函数返回对您的向量的引用并在您的其他模块中使用该函数。
file1.h
vector<string>& getMyVector();
file1.cpp
vector<string> myVector;
vector<string>& getMyVector() { return myVector; }
因此,在另一个模块 ( file2.cpp
) 中,您只需:
#include "file1.h"
...
cout << "First element of my vector is:" << getMyVector()[0] << endl;
希望您不想在多线程环境中使用它,否则您需要将其实现为适当的单例。