本文介绍了C ++私有静态成员变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
此C ++代码在编译时产生链接器错误:
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(); }将向量声明移动到cpp文件中即可.但是,我想了解以上代码中的链接器错误"Undefined symbols"原因.是什么导致上述代码中的链接器错误?
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?
推荐答案静态成员必须在编译单元中定义:
Static members have to be defined in a compilation unit:
// A.cpp vector<int> A::v;更多推荐
C ++私有静态成员变量
发布评论