
C++里面的类,它的成员有静态成员,就是在定义成员的时候前面加了static关键字。
静态成员有两种:一种是静态成员变量,另外一种就是静态成员函数。
他们与普通的成员差别是:
静态成员变量:
- 普通成员变量每一个对象有各自的一份,相互独立。 而静态的成员变量被所有的对象所共享。
- 另外是sizeof运算符,它不会计算静态成员变量。
- 它不需要通过对象就能访问。
静态成员函数:
- 普通成员函数必须作用于某个具体对象上,而静态成员函数并不具体作用于某个对象上。
- 它不需要通过对象就能访问。
如何访问静态成员,方法如下:
- 类名:成员名 ( Class :: name() );
- 对象名.成员名 ( Class r ; r.name() );
- 指针→成员名 ( Class*p=&r ;p→name() );
- 引用.成员名( Class&ref=r ;int n=ref.name );
静态成员变量本质上它是全局变量, 哪怕一个对象都不存在,一个类的静态成员变量也存在。
静态成员函数是一个全局的函数,它不需要作用在某一个对象。 普通的成员函数它必须具体地作用在某一个对象上。
我们设置静态成员的这种机制,它的目的是把和某些紧密相关的全局变量和全局函数写到类里面,并成为一个整体,易于理解和维护。
还需要注意以下:
- 在C++中,必须在定义的文件中对静态成员变量进行一次说明或初始化,否则编译能通过,链接不能通过。其中,你可以对它进行初始化,也可以不对它进行初始化。
- 在静态成员函数中,不能访问非静态成员变量,也不能调用非静态成员函数。
仅作为笔记
网友评论