この C++ コードは、コンパイル時にリンカー エラーを生成しています。
// A.h
class A {
public:
static void f();
private:
static std::vector<int> v;
};
// A.cpp
void A::f() {
// this line is causing trouble
int i = v.size();
}
ベクトル宣言を cpp ファイルに移動すると機能します。"Undefined symbols"
ただし、上記のコードのリンカ エラーの原因を理解したいと思います。上記のコードでリンカー エラーが発生する原因は何ですか?