私はクラスを持っています、それはFoo
Foo
私はヘッダーのクラスに次の行を含めるときにコンパイルされません。C++静的クラスと非静的クラスのメンバ
static std::vector<UnvalidatedSocket*> unvalidatedSockets;
とcppの次の行。
Foo::unvalidatedSockets.push_back(new UnvalidatedSocket(ClientSocket));
static
キーワードを取り除くと、うまくコンパイルされます。 循環インクルードを確認しましたが、何もありません。
エラーがLNK2001, unresolved external symbol
これはなぜ起こるのでしょうか? 静的クラスメンバーは早めに含まれますか?
静的メンバーを宣言するだけでなく、宣言する必要があります。あなたのcppファイルに 'std :: vector Foo :: unvalidatedSocket;'を追加してください。 –
Quest
あなたがどんなエラーを出しているのか誰にも言わないでください。それは人々が推測するのがはるかに興味深いでしょう... – Slava
ダーニット..私は本当にあなたがC++での宣言を二重にしなければならないのが大好きです。 (まあ、実際には宣言しません。)javadevelopperが学ぶことができるものがまだあると思われます。 – blipman17