0

私は2つのモジュールとヘッダーファイルを持つ小さなプロジェクトに取り組んでいます。

私のモジュールの1つで、文字列のベクトルを作成し、それにいくつかのデータを入力します。

他のモジュールのベクトル値へのアクセスに問題があります。これをグローバルにする方法について誰かが私にアドバイスを提供できますか?

私が怠惰である/これを自分でソートしようとしないと思わないでください。#ifndef、#includes、#define、extern、および関数プロトタイプを宣言する時期/場所と混同されています。私はこれらすべてがそれと関係があることを知っています、ただ順序についてはわかりません!VS2010を使用しています。

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 に答える