C++では、クラスメンバー変数をexternとしてマークできますか?クラス内でextern変数を使用できますか?
私は、文字列Aは私には、別のヘッダ・ファイルに定義されて
class Foo {
public:
extern string A;
};
を持つことができますか?私はあなたの質問に正しくコメントを理解していれば
C++では、クラスメンバー変数をexternとしてマークできますか?クラス内でextern変数を使用できますか?
私は、文字列Aは私には、別のヘッダ・ファイルに定義されて
class Foo {
public:
extern string A;
};
を持つことができますか?私はあなたの質問に正しくコメントを理解していれば
、あなたがstatic data members
を探しているstatic
としてフィールドを宣言します。
// with_static.hpp
struct with_static
{
static vector<string> static_vector;
};
は一つだけTU(±.cpp
ファイル)でそれを定義します。
// with_static.cpp
vector<string> with_static::static_vector{"World"};
次に使用できます。あなたはclass::field
とobject.field
表記を使用することができ、それらはすべてが同じオブジェクトを参照していることに注意してください:
with_static::static_vector.push_back("World");
with_static foo, bar;
foo.static_vector[0] = "Hello";
cout << bar.static_vector[0] << ", " << with_static::static_vector[1] << endl;
上記のそれではないですHello, World
ベクトルは約50,000のエントリであり、コード内で初期化したいのです(ベクトルv = {"first_word"、 "second_word私はFoo.hとFoo.cppを持っています;それを保存する方法はありますか? * another *ファイル内のメンバ変数? – nilcit
はい、編集を参照してください – krzaq
私は完全に解決策を理解しているかどうかはわかりませんが、with_static.hppファイルでstatic_vectorを宣言できます私は*初期化をwith_static.cppファイルに入れたいとは思っていません。 * another *ファイル内のstatic_vector = {"hello"、 "world"}のようなものです。可能ですか – nilcit
を印刷する必要があります。あなたは何を達成しようとしていますか?たぶんあなたは静的メンバー変数を探していますか? – krzaq
オブジェクトをインスタンス化するたびに読み込む代わりに、実行可能ファイルにインクルードしたいという巨大なベクトルがあります。静的メンバー変数を調べます。それらを別のファイルで定義する方法はありますか? –
nilcit
はい、実際にはほとんど義務があります。 – krzaq