static成员的概念
声明为static的类成员称为类的静态成员,用static修饰的成员变量,称之为静态成员变量
class A
{
public:
static int a; //创建静态成员变量
};
用static修饰的成员函数,称之为静态成员函数
class A
{
public:
static int get(){} // 创建静态成员函数
};
静态成员函数不可以调用类中的非静态成员
非静态成员函数,可以调用类中的静态成员
静态的成员变量一定要在类外进行初始化
class A
{
public:
static int a; //创建静态成员变量
static const int b = 1; //静态const整形可以给缺省值
//long long 和 int 的const变量可以给缺省值,double之类的不可以
};
int A::a = 1; //静态成员变量必须在类外初始化,需要用::作用域限定符说明在哪个类中
static的特性
1. 静态成员为该类所有对象所共享,存在于静态区,不属于某个具体的实例
2. 静态成员变量必须在类外定义,定义时不添加static关键字
3. 类静态成员即可用类名::静态成员或者对象.静态成员来访问
4. 静态成员函数没有隐藏的this指针,不能访问任何非静态成员
5. 静态成员和类的普通成员一样,也有public、protected、private3种访问级别,也可以具有返回值
6.静态成员变量的定义不受访问限定符的限制