0

我正在做一个有两个模块和一个头文件的小项目。

在我的一个模块中,我创建了一个字符串向量并用一些数据填充它。

我现在在访问其他模块中的向量值时遇到问题。谁能给我任何关于如何使这个全球化的建议?

请不要认为我懒惰/没有尝试自己对此进行排序,我只是对#ifndef、#includes、#define、extern 以及何时/何地声明函数原型感到困惑。我知道所有这些都与它有关,只是不确定顺序!我正在使用 VS 2010。

4

1 回答 1

1

在您的模块中定义一个 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;

希望您不想在多线程环境中使用它,否则您需要将其实现为适当的单例。

于 2013-01-13T18:47:26.757 回答