静态成员变量和静态成员函数

2019-04-28  本文已影响0人  医学农民工

C++里面的类,它的成员有静态成员,就是在定义成员的时候前面加了static关键字。
静态成员有两种:一种是静态成员变量,另外一种就是静态成员函数。
他们与普通的成员差别是:

静态成员变量:

  1. 普通成员变量每一个对象有各自的一份,相互独立。 而静态的成员变量被所有的对象所共享。
  2. 另外是sizeof运算符,它不会计算静态成员变量。
  3. 它不需要通过对象就能访问。

静态成员函数:

  1. 普通成员函数必须作用于某个具体对象上,而静态成员函数并不具体作用于某个对象上。
  2. 它不需要通过对象就能访问。

如何访问静态成员,方法如下:

  1. 类名:成员名 ( Class :: name() );
  2. 对象名.成员名 ( Class r ; r.name() );
  3. 指针→成员名 ( Class*p=&r ;p→name() );
  4. 引用.成员名( Class&ref=r ;int n=ref.name );

静态成员变量本质上它是全局变量, 哪怕一个对象都不存在,一个类的静态成员变量也存在。
静态成员函数是一个全局的函数,它不需要作用在某一个对象。 普通的成员函数它必须具体地作用在某一个对象上。

我们设置静态成员的这种机制,它的目的是把和某些紧密相关的全局变量和全局函数写到类里面,并成为一个整体,易于理解和维护。
还需要注意以下:

  1. 在C++中,必须在定义的文件中对静态成员变量进行一次说明或初始化,否则编译能通过,链接不能通过。其中,你可以对它进行初始化,也可以不对它进行初始化。
  2. 在静态成员函数中,不能访问非静态成员变量,也不能调用非静态成员函数

仅作为笔记

上一篇 下一篇

猜你喜欢

热点阅读