c++的静态成员和静态成员函数
如果有n个同类的对象,每个对象都分别有自己的数据成员,不同对象都有不同的值;但是有些情况需要多个对象共同维护一个变量,这就引入了静态数据成员来实现数据共享;
全局变量也可以实现上边的需求,但是全局变量全局变量的安全性得不到保证;
注意:
- 静态数据成员不属于某一个对象,在位对象所分配的空间中不包括静态数据成员所占的空间;静态数据成员是在所有对象以外单独开辟空间;只要在类中指定了静态数据成员,即使不定义对象,也为静态数据成员分配空间,可以被引用;
-
静态成员不随着对象的建立而分配空间,也不随着对象的撤销而释放;静态成员是在程序开始运行的时候被分配空间,到程序结束的时候才释放空间;
-
静态成员(数据成员,成员函数)属于类,并属于对象;随意在类外使用类内定义的数据数据成员或者成员函数的时候,可以直接通过类名来用。比如:
class student
{
public:
int a;
student(a);
static void display()
{
cout<<"feng haojun"<<endl;
return 0;
}
}:
int main()
{
student::display();
return 0;
}
feng haojun
不需要定义实例化就可以调用display函数
- 静态数据成员有多个对象公用维护,每个对象操作的static成员是同一个