现在的位置: 首页 > 综合 > 正文

关于类中的static变量

2013年09月16日 ⁄ 综合 ⁄ 共 998字 ⁄ 字号 评论关闭

 

提示出错

修改方法

 

int testClass::x = 5;

int main()
{
原因:
(1)However, the declaration of the static member variable is not also a definition,
 thus the need to define it outside of the class definition. 
This is so that you can define the variable in exactly one source file instead of having 
multiple versions of it defined in each translation unit that includes the header that contains the class definition.
(2)If you define an object in a header file, every source file including that will have the definition, which confuses the heck out of the linker. 
So instead, you simply declare things in headers, and define them once in some source file.

Normally, a class{} block just declares what a class looks like, and objects of the class get defined elsewhere. But static members are a different matter---since they don't live inside any particular object of the class, they must actually be defined separately.

 

抱歉!评论已关闭.