当需要让类的所有实例共享同一份数据时,就需要用到静态成员:
1. 静态数据成员
在类声明的多个实例中,每一个实例都维持着一份该类所有数据成员的拷贝。有时候需要对该类的所有实例维持一个个共享的数据。 如: static int number;
静态数据成员具有静态生存期。它不属于任何一个实例,只能通过类名来访问,一般的格式如:A :: number;
其初始化:int A :: number = 0; (此处的A为类名)
2. 静态成员函数
为什么要写成静态成员函数? 答:在一些情况下,需要编写一个由类和对象都可以访问的函数;
普通成员函数和静态成员函数的区别?答:普通成员函数必须在声明了实例后才可以被访问,静态成员函数不需要类的实例就可以直接访问;
static int function(int a, int b);
静态成员函数具有静态生存期,它不属于任何一个实例,只能通过类名来访问:
A :: function(4, 5);
类的静态成员函数可以直接访问该类的静态数据成员和静态成员函数,而不能直接访问非静态数据成员和非静态数据成员函数。因为非静态成员的访问需要类的实例进行。所以静态数据成员函数要访问类的非静态成员,需要通过参数取得