美文网首页
静态成员变量和静态成员函数

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

作者: 医学农民工 | 来源:发表于2019-04-28 13:49 被阅读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. 在静态成员函数中,不能访问非静态成员变量,也不能调用非静态成员函数

仅作为笔记

相关文章

  • C++——静态成员函数与静态成员变量

    静态成员函数与静态成员变量使用static进行定义。 静态成员函数和静态成员变量其实就是全局函数与全局变量。 静态...

  • C++——静态成员函数与静态成员变量

    静态成员函数与静态成员变量使用static进行定义。 静态成员函数和静态成员变量其实就是全局函数与全局变量。 静态...

  • C++静态成员与友元

    静态成员 静态变量的初始化(如何定义) static int getnum()//静态成员函数 静态成员函数只能操...

  • 18-static成员

    静态成员(static) 静态成员:被static修饰的成员变量/函数,可以称为静态成员。 可以通过对象(对象.静...

  • 类型转换、static成员、单例模式

    静态成员(static) 静态成员:被static修饰的成员变量\函数可以通过对象(对象.静态成员)、对象指针(对...

  • c++之静态成员

    静态成员:被static修饰的成员变量\函数 可以通过对象(对象.静态成员)、对象指针(对象指针->静态成员)、 ...

  • static,const,拷贝,友元,模板

    静态成员 static 静态成员:被static修饰的成员变量\函数可以通过对象(对象.静态成员)、对象指针(对象...

  • 内部类

    静态内部类 静态内部类只能调用静态成员变量,不能调用非静态成员变量; 成员内部类 成员内部类和成员变量类似; 局部...

  • [初学C++]静态成员

    静态成员变量和成员函数 在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所...

  • C++入门08 --静态成员,单例模式,const成员,引用成员

    静态成员 静态成员:被static关键字修饰的成员变量或者函数; 可以通过对象(对象.静态成员),对象指针(对象指...

网友评论

      本文标题:静态成员变量和静态成员函数

      本文链接:https://www.haomeiwen.com/subject/bysdnqtx.html