C++ private static member variables
问题 This C++ code is producing linker errors at compile time: // 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(); } Moving the vector declaration into the cpp file works. However I want to understand the linker error "Undefined symbols" cause in the above code. What is causing the linker error in the above code? 回答1: Static members have to be defined in a compilation unit: // A.cpp vector<int> A: