静态成员变量一定要在类外进行初始化。
类的计算::静态成员变量 不包含在对象中,也不在类中 所以在计算类大小时应该不计算静态成员
静态成员的访问::静态成员变量不属于某个具体对象,是类的属性。每个对象可以访问
访问形式 test._static_pl 对象访问 TEst::_static_pl类名访问(前提是这个_static_pl是放置于public区域中)
静态成员变量的初始化
静态成员变量
方式
普通类型的成员变量
1
定义(一般成员变量都在private区域下)
必须在内外定义 int Test::_count = 10;
由构造函数定义或者拷贝构造函数
2
访问限定
都有public , private , protected三种区域
3
类的计算
静态成员变量不存在于对象中,空间大小不加入计算
在对象中,需要计算大小
4
作用域
5
访问方式(private 下是相同)
(private 下是相同)
6
访问方式(public 下是不同的)
可以用作用域::加变量名
静态成员函数
(由于普通的成员函数只能通过对象调用)
用static修饰的成员函数,可以通过类名调用
普通类型的成员函数
访问方式
只能访静态成员变量,不能访问非静态成员变量
普通的成员变量和静态成员变量都可以访问
this
静态成员函数没有隐藏的this指针
有隐藏的this指针
调用
一般是类名+成员函数名的方式调用
只能通过对象调用
const
不能用const修饰(没有this指针)
可以用const修饰(const本质修饰的this指针)
函数内调用
静态成员函数不能调用普通类型的成员函数
相反就可以