static 静态成员是属于整个类的,不是某个对象。在所有对象中可以共享它。
1. 可以通过类名直接调用静态成员,非静态成员则不行。如:
class Student
{
public:
static void init()
{
}
};
void main()
{
Student::init();
}
2. 静态成员在类实例化对象之前就已经分配空间,因此不能调用非静态成员,因为非静态成员是在实例化对象之后才分配空间。这种调用就像未声明对象却使用了它一样。
3. 静态成员在使用前要初始化。静态成员的初始化要在类外。
能在类中初始化的成员只有一种,静态常量成员。static和const都不能在类内初始化,static const可以在类内初始化。