c++中静态成员变量和静态成员函数在类外部定义时为什么不能指定关键字static?
在类的定义里面,要申明静态成员,会用关键字static。为什么在外部定义的时候却不用指定关键字static了呢?
[解决办法]
顶下LZ,有的东西,是需要思考的
说下我的理解
1. static成员变量需要在类外部初始化
这种初始化方式是由静态成员的公有性质决定的,它不能放在构造函数里由每一个对象来初始化,必须在类外实现
2. 外部初始化时不能加关键字static
否则编译报错:
error: `static' may not be used when defining (as opposed to declaring) a static data member
这是由static关键字的性质决定的
和const不一样,const声明只读,而static是存储说明符,其具有唯一性,也就是同一个变量,static不管是声明还是定义,只能在一个地方做。
此处,static 成员变量在类内部声明
在类外部定义,定义的时候才真正分配空间。
关注~