关于静态成员和静态成员函数

来源:互联网 发布:软件公测 编辑:程序博客网 时间:2024/04/20 05:10

一般的情况下我们为了实现数据的共享,通常设定变量为全局变量和设置成静态成员变量,但是一般的情况因为全局变量的安全性不高,往往采用静态成员变量,静态成员变量一般以static 开头,static 成员变量属于类,不属于某个具体的对象,它不会随着对象的创建而产生,也不会因对象的撤销而释放内存。static 成员变量只有初始化后才可以使用,否则会出现连接错误。初始化时可以不加static ,但是必须被 public privater protact 修饰,static 的内存空间是在初始化时才分配的。

对静态成员的几点说明:

1) 一个类中可以有一个或多个成员变量,所有的对象都可以共享这些静态成员变量,并可以引用它。

2) static 成员变量和普通的static 变量一样,编译时在静态数据区分配内存,到程序结束时才释放内存。

3)成员变量必须初始化,并且必须在类体外进行 int student  :: num = 1; 当不赋值时默认赋值为 0.

4)static 成员变量既可以通过类来访问,也可以通过对象来访问。

在类中,static 除了声明静态成员变量,还可以声明静态成员函数,但是静态成员函数只能访问静态成员变量,而不能访问所有的变量。

在静态成员变量和普通变量的区别是非静态成员函数有this 指针,而静态成员函数没有this指针,由此决定了静态成员函数不能访问本类中的非静态的成员变量。

静态成员函数可以直接引用本类中的静态数据成员,因为静态成员同样是属于类的,可以直接引用。在C++程序中,静态成员函数主要用来访问静态数据成员,而不访问非静态成员。  如果要在类外调用 public 属性的静态成员函数,要用类名和域解析符“::”。如: Student::getNum(); 当然也可以通过对象名调用静态成员函数,如: stu.getNum();

0 0
原创粉丝点击